
<!DOCTYPE HTML>
<html lang="zh-hans" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>数据建模 · Elasticsearch权威指南中文版</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        <meta name="author" content="WS">
        
        
    
    <link rel="stylesheet" href="gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-anchors/plugin.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-splitter/splitter.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-tbfed-pagefooter/footer.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-expandable-chapters-small/expandable-chapters-small.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-anchor-navigation-ex/style/plugin.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-ace/ace.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-emphasize/plugin.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-search-plus/search.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="7_Modeling_your_data.html" />
    
    
    <link rel="prev" href="6_Geolocation.html" />
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="输入并搜索" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="./">
            
                <a href="./">
            
                    
                    序言
            
                </a>
            

            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="2.1" data-path="1Preface.html">
            
                <a href="1Preface.html">
            
                    
                    前言
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.1.1" data-path="1Preface.html">
            
                <a href="1Preface.html#谁应该读这本书">
            
                    
                    谁应该读这本书
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.2" data-path="1Preface.html">
            
                <a href="1Preface.html#为什么我们要写这本书">
            
                    
                    为什么我们要写这本书
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.3" data-path="1Preface.html">
            
                <a href="1Preface.html#Elasticsearch版本">
            
                    
                    Elasticsearch版本
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.4" data-path="1Preface.html">
            
                <a href="1Preface.html#如何读这本书">
            
                    
                    如何读这本书
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.5" data-path="1Preface.html">
            
                <a href="1Preface.html#本书导航">
            
                    
                    本书导航
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.6" data-path="1Preface.html">
            
                <a href="1Preface.html#在线资源">
            
                    
                    在线资源
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.7" data-path="1Preface.html">
            
                <a href="1Preface.html#本书协议约定">
            
                    
                    本书协议约定
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.8" data-path="1Preface.html">
            
                <a href="1Preface.html#使用代码示例">
            
                    
                    使用代码示例
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.9" data-path="1Preface.html">
            
                <a href="1Preface.html#鸣谢">
            
                    
                    鸣谢
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="3.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html">
            
                    
                    基础入门
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#你知道的为了搜索">
            
                    
                    你知道的, 为了搜索…
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.1.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#安装并运行Elasticsearch">
            
                    
                    安装并运行Elasticsearch
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#安装Sense">
            
                    
                    安装Sense
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#和Elasticsearch交互">
            
                    
                    和Elasticsearch交互
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.4" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#面向文档">
            
                    
                    面向文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.5" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#适应新环境">
            
                    
                    适应新环境
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.6" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#索引雇员文档">
            
                    
                    索引雇员文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.7" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#检索文档">
            
                    
                    检索文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.8" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#轻量搜索">
            
                    
                    轻量搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.9" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#使用查询表达式搜索">
            
                    
                    使用查询表达式搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.10" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#更复杂的搜索">
            
                    
                    更复杂的搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.11" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#全文搜索">
            
                    
                    全文搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.12" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#短语搜索">
            
                    
                    短语搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.13" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#高亮搜索">
            
                    
                    高亮搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.14" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#分析">
            
                    
                    分析
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.15" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#教程结语">
            
                    
                    教程结语
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.16" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#分布式特性">
            
                    
                    分布式特性
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.17" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#">
            
                    
                    后续步骤
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#集群内的原理">
            
                    
                    集群内的原理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.2.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#空集群">
            
                    
                    空集群
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#集群健康">
            
                    
                    集群健康
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#添加索引">
            
                    
                    添加索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.4" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#添加故障转">
            
                    
                    添加故障转
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.5" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#水平扩容">
            
                    
                    水平扩容
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.6" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#应对故障">
            
                    
                    应对故障
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#数据输入和输出">
            
                    
                    数据输入和输出
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.3.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#什么是文档">
            
                    
                    什么是文档?
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#文档元数据">
            
                    
                    文档元数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#索引文档">
            
                    
                    索引文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.4" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#取回一个文档">
            
                    
                    取回一个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.5" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#检查文档是否存在">
            
                    
                    检查文档是否存在
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.6" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#更新整个文档">
            
                    
                    更新整个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.7" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#创建新文档">
            
                    
                    创建新文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.8" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#删除文档">
            
                    
                    删除文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.9" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#处理冲突">
            
                    
                    处理冲突
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.10" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#乐观并发控制">
            
                    
                    乐观并发控制
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.11" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#文档的部分更新">
            
                    
                    文档的部分更新
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.12" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#取回多个文档">
            
                    
                    取回多个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.13" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#代价较小的批量操作">
            
                    
                    代价较小的批量操作
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#分布式文档存储">
            
                    
                    分布式文档存储
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.4.1" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#路由一个文档到一个分片中">
            
                    
                    路由一个文档到一个分片中
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.2" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#主分片和副本分片如何交互">
            
                    
                    主分片和副本分片如何交互
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.3" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#新建索引和删除文档">
            
                    
                    新建、索引和删除文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#取回一个文档">
            
                    
                    取回一个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.5" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#局部更新文档">
            
                    
                    局部更新文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.6" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#多文档模式">
            
                    
                    多文档模式
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.5" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#搜索最基本的工具">
            
                    
                    搜索——最基本的工具
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.5.1" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#空搜索">
            
                    
                    空搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.5.2" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#多索引多类型">
            
                    
                    多索引，多类型
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.5.3" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#分页">
            
                    
                    分页
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.5.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#轻量搜索">
            
                    
                    轻量搜索
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.6" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#映射和分析">
            
                    
                    映射和分析
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.6.1" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#精确值VS全文">
            
                    
                    精确值 VS 全文
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.2" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#倒排索引">
            
                    
                    倒排索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.3" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#分析与分析器">
            
                    
                    分析与分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#映射">
            
                    
                    映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.5" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#复杂核心域类型">
            
                    
                    复杂核心域类型
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.7" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#请求体查询">
            
                    
                    请求体查询
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.7.1" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#空查询">
            
                    
                    空查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.2" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#查询表达式">
            
                    
                    查询表达式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.3" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#查询与过滤">
            
                    
                    查询与过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.4" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#最重要的查询">
            
                    
                    最重要的查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.5" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#组合多查询">
            
                    
                    组合多查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.6" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#验证查询">
            
                    
                    验证查询
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.8" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#排序与相关性">
            
                    
                    排序与相关性
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.8.1" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#排序">
            
                    
                    排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.8.2" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#字符串排序与多字段">
            
                    
                    字符串排序与多字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.8.3" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#什么是相关性">
            
                    
                    什么是相关性?
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.8.4" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#DocValues介绍">
            
                    
                    Doc Values 介绍
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.9" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#执行分布式检索">
            
                    
                    执行分布式检索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.9.1" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#查询阶段">
            
                    
                    查询阶段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.9.2" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#取回阶段">
            
                    
                    取回阶段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.9.3" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#搜索选项">
            
                    
                    搜索选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.9.4" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#游标查询Scroll">
            
                    
                    游标查询 Scroll
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.10" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#索引管理">
            
                    
                    索引管理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.10.1" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#创建一个索引">
            
                    
                    创建一个索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.2" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#删除一个索引">
            
                    
                    删除一个索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.3" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#索引设置">
            
                    
                    索引设置
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.4" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#配置分析器">
            
                    
                    配置分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.5" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#自定义分析器">
            
                    
                    自定义分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.6" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#类型和映射">
            
                    
                    类型和映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.7" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#根对象">
            
                    
                    根对象
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.8" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#动态映射">
            
                    
                    动态映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.9" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#自定义动态映射">
            
                    
                    自定义动态映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.10" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#缺省映射">
            
                    
                    缺省映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.11" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#重新索引你的数据">
            
                    
                    重新索引你的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.12" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#索引别名和零停机">
            
                    
                    索引别名和零停机
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.11" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#分片内部原理">
            
                    
                    分片内部原理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.11.1" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#使文本可被搜索">
            
                    
                    使文本可被搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.2" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#动态更新索引">
            
                    
                    动态更新索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.3" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#近实时搜索">
            
                    
                    近实时搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.4" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#持久化变更">
            
                    
                    持久化变更
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.5" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#段合并">
            
                    
                    段合并
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="4.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#深入搜索">
            
                    
                    深入搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#结构化搜索">
            
                    
                    结构化搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.1.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#精确值查找">
            
                    
                    精确值查找
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#组合过滤器">
            
                    
                    组合过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#查找多个精确值">
            
                    
                    查找多个精确值
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.4" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#范围">
            
                    
                    范围
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.5" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#处理Null值">
            
                    
                    处理 Null 值
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.6" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#关于缓存">
            
                    
                    关于缓存
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#全文搜索">
            
                    
                    全文搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.2.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#基于词项与基于全文">
            
                    
                    基于词项与基于全文
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#匹配查询">
            
                    
                    匹配查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多词查询">
            
                    
                    多词查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.4" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#组合查询">
            
                    
                    组合查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.5" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#如何使用布尔匹配">
            
                    
                    如何使用布尔匹配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.6" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#查询语句提升权重">
            
                    
                    查询语句提升权重
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.7" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#控制分析">
            
                    
                    控制分析
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.8" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#被破坏的相关度">
            
                    
                    被破坏的相关度！
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多字段搜索">
            
                    
                    多字段搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.3.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多字符串查询">
            
                    
                    多字符串查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#单字符串查询">
            
                    
                    单字符串查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#最佳字段">
            
                    
                    最佳字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.4" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#最佳字段查询调优">
            
                    
                    最佳字段查询调优
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.5" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#multi_match查询">
            
                    
                    multi_match 查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.6" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多数字段">
            
                    
                    多数字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.7" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#跨字段实体搜索">
            
                    
                    跨字段实体搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.8" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#字段中心式查询">
            
                    
                    字段中心式查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.9" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#自定义all字段">
            
                    
                    自定义 _all 字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.10" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#crossfields跨字段查询">
            
                    
                    cross-fields 跨字段查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.11" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#ExactValue精确值字段">
            
                    
                    Exact-Value 精确值字段
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#近似匹配">
            
                    
                    近似匹配
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.4.1" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#短语匹配">
            
                    
                    短语匹配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.2" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#混合起来">
            
                    
                    混合起来
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.3" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#多值字段">
            
                    
                    多值字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#越近越好">
            
                    
                    越近越好
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#使用邻近度提高相关度">
            
                    
                    使用邻近度提高相关度
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#性能优化">
            
                    
                    性能优化
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.7" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#寻找相关词">
            
                    
                    寻找相关词
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#部分匹配">
            
                    
                    部分匹配
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.5.1" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#邮编与结构化数据">
            
                    
                    邮编与结构化数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.2" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#prefix前缀查询">
            
                    
                    prefix 前缀查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.3" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#通配符与正则表达式查询">
            
                    
                    通配符与正则表达式查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#查询时输入即搜索">
            
                    
                    查询时输入即搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#索引时优化">
            
                    
                    索引时优化
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#Ngrams在部分匹配的应用">
            
                    
                    Ngrams 在部分匹配的应用
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.7" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#索引时输入即搜索">
            
                    
                    索引时输入即搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.8" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#Ngrams在复合词的应用">
            
                    
                    Ngrams 在复合词的应用
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#控制相关度">
            
                    
                    控制相关度
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.6.1" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#相关度评分背后的理论">
            
                    
                    相关度评分背后的理论
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.2" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#Lucene的实用评分函数">
            
                    
                    Lucene 的实用评分函数
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.3" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#查询时权重提升">
            
                    
                    查询时权重提升
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#使用查询结构修改相关度">
            
                    
                    使用查询结构修改相关度
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#NotQuiteNot">
            
                    
                    Not Quite Not
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#忽略TFIDF">
            
                    
                    忽略 TF/IDF
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.7" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#functionscore查询">
            
                    
                    function_score 查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.8" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#按受欢迎度提升权重">
            
                    
                    按受欢迎度提升权重
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.9" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#过滤集提升权重">
            
                    
                    过滤集提升权重
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.10" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#随机评分">
            
                    
                    随机评分
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.11" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#越近越好">
            
                    
                    越近越好
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.12" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#理解price价格语句">
            
                    
                    理解 price 价格语句
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.13" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#脚本评分">
            
                    
                    脚本评分
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.14" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#可插拔的相似度算法">
            
                    
                    可插拔的相似度算法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.15" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#更改相似度">
            
                    
                    更改相似度
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.16" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#调试相关度是最后10要做的事情">
            
                    
                    调试相关度是最后 10% 要做的事情
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="5.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#处理人类语言">
            
                    
                    处理人类语言
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#开始处理各种语言">
            
                    
                    开始处理各种语言
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.1.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#使用语言分析器">
            
                    
                    使用语言分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#配置语言分析器">
            
                    
                    配置语言分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#混合语言的陷阱">
            
                    
                    混合语言的陷阱
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#每份文档一种语言">
            
                    
                    每份文档一种语言
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#每个域一种语言">
            
                    
                    每个域一种语言
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.6" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#混合语言域">
            
                    
                    混合语言域
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#词汇识别">
            
                    
                    词汇识别
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.2.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#标准分析器">
            
                    
                    标准分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#标准分词器">
            
                    
                    标准分词器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#安装ICU插件">
            
                    
                    安装 ICU 插件
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#icu分词器">
            
                    
                    icu_分词器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#整理输入文本">
            
                    
                    整理输入文本
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#归一化词元">
            
                    
                    归一化词元
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.3.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#举个例子">
            
                    
                    举个例子
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#如果有口音">
            
                    
                    如果有口音
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Unicode的世界">
            
                    
                    Unicode的世界
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Unicode大小写折叠">
            
                    
                    Unicode 大小写折叠
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Unicode字符折叠">
            
                    
                    Unicode 字符折叠
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.6" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#排序和整理">
            
                    
                    排序和整理
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#将单词还原为词根">
            
                    
                    将单词还原为词根
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.4.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#词干提取算法">
            
                    
                    词干提取算法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#字典词干提取器">
            
                    
                    字典词干提取器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Hunspell词干提取器">
            
                    
                    Hunspell 词干提取器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#选择一个词干提取器">
            
                    
                    选择一个词干提取器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#控制词干提取">
            
                    
                    控制词干提取
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.6" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#原形词干提取">
            
                    
                    原形词干提取
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词性能与精度">
            
                    
                    停用词: 性能与精度
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.5.1" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词的优缺点">
            
                    
                    停用词的优缺点
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.2" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#使用停用词">
            
                    
                    使用停用词
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.3" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词与性能">
            
                    
                    停用词与性能
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.4" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#词项的分别管理">
            
                    
                    词项的分别管理
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词与短语查询">
            
                    
                    停用词与短语查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.6" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#commongrams过滤器">
            
                    
                    common_grams 过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.7" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词与相关性">
            
                    
                    停用词与相关性
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.6" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#同义词">
            
                    
                    同义词
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.6.1" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#使用同义词">
            
                    
                    使用同义词
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.2" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#同义词格式">
            
                    
                    同义词格式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.3" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#扩展或收缩">
            
                    
                    扩展或收缩
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.4" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#同义词和分析链">
            
                    
                    同义词和分析链
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#多词同义词和短语查询">
            
                    
                    多词同义词和短语查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.6" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#符号同义词">
            
                    
                    符号同义词
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.7" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#拼写错误">
            
                    
                    拼写错误
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.7.1" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊性">
            
                    
                    模糊性
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.2" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊查询">
            
                    
                    模糊查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.3" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊匹配查询">
            
                    
                    模糊匹配查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.4" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊性评分">
            
                    
                    模糊性评分
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#语音匹配">
            
                    
                    语音匹配
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="6.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#聚合">
            
                    
                    聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#高阶概念">
            
                    
                    高阶概念
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.1.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#桶">
            
                    
                    桶
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.1.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#指标">
            
                    
                    指标
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.1.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#桶和指标的组合">
            
                    
                    桶和指标的组合
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#尝试聚合">
            
                    
                    尝试聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.2.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#添加度量指标">
            
                    
                    添加度量指标
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.2.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#嵌套桶">
            
                    
                    嵌套桶
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.2.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#最后的修改">
            
                    
                    最后的修改
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#条形图">
            
                    
                    条形图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.4" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#按时间统计">
            
                    
                    按时间统计
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.4.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#返回空Buckets">
            
                    
                    返回空 Buckets
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.4.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#扩展例子">
            
                    
                    扩展例子
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.4.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#潜力无穷">
            
                    
                    潜力无穷
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.5" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#范围限定的聚合">
            
                    
                    范围限定的聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#过滤和聚合">
            
                    
                    过滤和聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.6.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#过滤">
            
                    
                    过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#过滤桶">
            
                    
                    过滤桶
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6.3" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#后过滤器">
            
                    
                    后过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6.4" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#小结5_2">
            
                    
                    小结
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.7" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#多桶排序">
            
                    
                    多桶排序
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.7.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#内置排序">
            
                    
                    内置排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.7.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#按度量排序">
            
                    
                    按度量排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.7.3" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#基于深度度量排序">
            
                    
                    基于“深度”度量排序
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.8" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#近似聚合">
            
                    
                    近似聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.8.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#统计去重后的数量">
            
                    
                    统计去重后的数量
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.8.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#百分位计算">
            
                    
                    百分位计算
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.9" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#通过聚合发现异常指标">
            
                    
                    通过聚合发现异常指标
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.9.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#significantterms演示">
            
                    
                    significant_terms 演示
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.10" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#DocValuesandFielddata">
            
                    
                    Doc Values and Fielddata
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.10.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#DocValues">
            
                    
                    Doc Values
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#深入理解DocValues">
            
                    
                    深入理解 Doc Values
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.3" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#聚合与分析">
            
                    
                    聚合与分析
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.4" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#限制内存使用">
            
                    
                    限制内存使用
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.5" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#Fielddata的过滤">
            
                    
                    Fielddata 的过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.6" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#预加载fielddata">
            
                    
                    预加载 fielddata
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.7" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#优化聚合查询">
            
                    
                    优化聚合查询
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.11" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#总结5_2">
            
                    
                    总结
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="7.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理位置">
            
                    
                    地理位置
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理坐标点">
            
                    
                    地理坐标点
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.1.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#经纬度坐标格式">
            
                    
                    经纬度坐标格式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#通过地理坐标点过滤">
            
                    
                    通过地理坐标点过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理坐标盒模型过滤器">
            
                    
                    地理坐标盒模型过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.4" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理距离过滤器">
            
                    
                    地理距离过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.5" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#按距离排序">
            
                    
                    按距离排序
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="7.1.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohashes6">
            
                    
                    Geohashes
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.2.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohashes映射">
            
                    
                    Geohashes 映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.2.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohash单元查询">
            
                    
                    Geohash 单元查询
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="7.1.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理位置聚合">
            
                    
                    地理位置聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.3.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理距离聚合">
            
                    
                    地理距离聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.3.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohash网格聚合">
            
                    
                    Geohash 网格聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.3.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理边界聚合">
            
                    
                    地理边界聚合
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="7.1.4" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理形状">
            
                    
                    地理形状
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.4.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#映射地理形状">
            
                    
                    映射地理形状
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.4.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#索引地理形状">
            
                    
                    索引地理形状
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.4.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#查询地理形状">
            
                    
                    查询地理形状
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.4.4" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#在查询中使用已索引的形状">
            
                    
                    在查询中使用已索引的形状
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="8.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#数据建模">
            
                    
                    数据建模
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#关联关系处理">
            
                    
                    关联关系处理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.1.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#应用层联接">
            
                    
                    应用层联接
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#非规范化你的数据">
            
                    
                    非规范化你的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#字段折叠">
            
                    
                    字段折叠
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#非规范化和并发">
            
                    
                    非规范化和并发
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.5" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#解决并发问题">
            
                    
                    解决并发问题
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="8.1.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套对象">
            
                    
                    嵌套对象
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.2.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套对象映射">
            
                    
                    嵌套对象映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.2.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套对象查询">
            
                    
                    嵌套对象查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.2.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#使用嵌套字段排序">
            
                    
                    使用嵌套字段排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.2.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套聚合">
            
                    
                    嵌套聚合
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="8.1.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#父子关系文档">
            
                    
                    父-子关系文档
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.3.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#父子关系文档映射">
            
                    
                    父-子关系文档映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#构建父子文档索引">
            
                    
                    构建父-子文档索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#通过子文档查询父文档">
            
                    
                    通过子文档查询父文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#通过父文档查询子文档">
            
                    
                    通过父文档查询子文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.5" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#子文档聚合">
            
                    
                    子文档聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.6" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#祖辈与孙辈关系">
            
                    
                    祖辈与孙辈关系
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.7" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#实际使用中的一些建议">
            
                    
                    实际使用中的一些建议
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="8.1.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#扩容设计">
            
                    
                    扩容设计
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.4.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#扩容的单元">
            
                    
                    扩容的单元
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#分片预分配">
            
                    
                    分片预分配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#海量分片">
            
                    
                    海量分片
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#容量规划">
            
                    
                    容量规划
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.5" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#副本分片">
            
                    
                    副本分片
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.6" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#多索引">
            
                    
                    多索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.7" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#基于时间的数据">
            
                    
                    基于时间的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.8" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#索引模板">
            
                    
                    索引模板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.9" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#数据过期">
            
                    
                    数据过期
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.10" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#基于用户的数据">
            
                    
                    基于用户的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.11" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#共享索引">
            
                    
                    共享索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.12" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#利用别名实现一个用户一个索引">
            
                    
                    利用别名实现一个用户一个索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.13" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#一个大的用户">
            
                    
                    一个大的用户
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.14" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#扩容并不是无限的">
            
                    
                    扩容并不是无限的
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="9.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#管理监控和部署">
            
                    
                    管理、监控和部署
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#监控">
            
                    
                    监控
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.1.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#Marvel监控">
            
                    
                    Marvel 监控
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#集群健康">
            
                    
                    集群健康
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#监控单个节点">
            
                    
                    监控单个节点
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.4" data-path="8_Admin.html">
            
                <a href="8_Admin.html#集群统计">
            
                    
                    集群统计
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.5" data-path="8_Admin.html">
            
                <a href="8_Admin.html#索引统计">
            
                    
                    索引统计
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.6" data-path="8_Admin.html">
            
                <a href="8_Admin.html#等待中的任务">
            
                    
                    等待中的任务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.7" data-path="8_Admin.html">
            
                <a href="8_Admin.html#catAPI">
            
                    
                    cat API
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="9.1.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#部署">
            
                    
                    部署
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.2.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#硬件">
            
                    
                    硬件
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#Java虚拟机">
            
                    
                    Java 虚拟机
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#TransportClient与NodeClient">
            
                    
                    Transport Client 与 Node Client
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.4" data-path="8_Admin.html">
            
                <a href="8_Admin.html#配置管理">
            
                    
                    配置管理
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.5" data-path="8_Admin.html">
            
                <a href="8_Admin.html#重要配置的修改">
            
                    
                    重要配置的修改
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.6" data-path="8_Admin.html">
            
                <a href="8_Admin.html#不要触碰这些配置">
            
                    
                    不要触碰这些配置！
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.7" data-path="8_Admin.html">
            
                <a href="8_Admin.html#堆内存大小和交换">
            
                    
                    堆内存:大小和交换
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.8" data-path="8_Admin.html">
            
                <a href="8_Admin.html#文件描述符和MMap">
            
                    
                    文件描述符和 MMap
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.9" data-path="8_Admin.html">
            
                <a href="8_Admin.html#在生产之前，重温这个列表">
            
                    
                    在生产之前，重温这个列表
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="9.1.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#部署后">
            
                    
                    部署后
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.3.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#动态变更设置">
            
                    
                    动态变更设置
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#日志记录">
            
                    
                    日志记录
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#索引性能技巧">
            
                    
                    索引性能技巧
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.4" data-path="8_Admin.html">
            
                <a href="8_Admin.html#推迟分片分配">
            
                    
                    推迟分片分配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.5" data-path="8_Admin.html">
            
                <a href="8_Admin.html#滚动重启">
            
                    
                    滚动重启
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.6" data-path="8_Admin.html">
            
                <a href="8_Admin.html#备份你的集群">
            
                    
                    备份你的集群
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.7" data-path="8_Admin.html">
            
                <a href="8_Admin.html#从快照恢复">
            
                    
                    从快照恢复
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.8" data-path="8_Admin.html">
            
                <a href="8_Admin.html#集群是活着的呼吸着的生命">
            
                    
                    集群是活着的、呼吸着的生命
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            本书使用 GitBook 发布
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="." >数据建模</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div class="search-plus" id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <div id="anchor-navigation-ex-navbar"><i class="fa fa-anchor"></i><ul><li><a href="#&#x6570;&#x636E;&#x5EFA;&#x6A21;">&#x6570;&#x636E;&#x5EFA;&#x6A21;</a></li><ul><li><a href="#&#x5173;&#x8054;&#x5173;&#x7CFB;&#x5904;&#x7406;">&#x5173;&#x8054;&#x5173;&#x7CFB;&#x5904;&#x7406;</a></li><ul><li><a href="#&#x5E94;&#x7528;&#x5C42;&#x8054;&#x63A5;">&#x5E94;&#x7528;&#x5C42;&#x8054;&#x63A5;</a></li><li><a href="#&#x975E;&#x89C4;&#x8303;&#x5316;&#x4F60;&#x7684;&#x6570;&#x636E;">&#x975E;&#x89C4;&#x8303;&#x5316;&#x4F60;&#x7684;&#x6570;&#x636E;</a></li><li><a href="#&#x5B57;&#x6BB5;&#x6298;&#x53E0;">&#x5B57;&#x6BB5;&#x6298;&#x53E0;</a></li><li><a href="#&#x975E;&#x89C4;&#x8303;&#x5316;&#x548C;&#x5E76;&#x53D1;">&#x975E;&#x89C4;&#x8303;&#x5316;&#x548C;&#x5E76;&#x53D1;</a></li><li><a href="#&#x89E3;&#x51B3;&#x5E76;&#x53D1;&#x95EE;&#x9898;">&#x89E3;&#x51B3;&#x5E76;&#x53D1;&#x95EE;&#x9898;</a></li></ul><li><a href="#&#x5D4C;&#x5957;&#x5BF9;&#x8C61;">&#x5D4C;&#x5957;&#x5BF9;&#x8C61;</a></li><ul><li><a href="#&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x6620;&#x5C04;">&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x6620;&#x5C04;</a></li><li><a href="#&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x67E5;&#x8BE2;">&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x67E5;&#x8BE2;</a></li><li><a href="#&#x4F7F;&#x7528;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x6392;&#x5E8F;">&#x4F7F;&#x7528;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x6392;&#x5E8F;</a></li><li><a href="#&#x5D4C;&#x5957;&#x805A;&#x5408;">&#x5D4C;&#x5957;&#x805A;&#x5408;</a></li></ul><li><a href="#&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;">&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;  </a></li><ul><li><a href="#&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;&#x6620;&#x5C04;">&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;&#x6620;&#x5C04;  </a></li><li><a href="#&#x6784;&#x5EFA;&#x7236;&#x5B50;&#x6587;&#x6863;&#x7D22;&#x5F15;">&#x6784;&#x5EFA;&#x7236;-&#x5B50;&#x6587;&#x6863;&#x7D22;&#x5F15;  </a></li><li><a href="#&#x901A;&#x8FC7;&#x5B50;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;">&#x901A;&#x8FC7;&#x5B50;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;</a></li></ul><li><a href="#haschild-&#x8FC7;&#x6EE4;&#x7684;&#x7ED3;&#x679C;&#x6CA1;&#x6709;&#x88AB;&#x7F13;&#x5B58;&#xFF0C;&#x4F46;&#x662F;-haschild-&#x8FC7;&#x6EE4;&#x5185;&#x90E8;&#x7684;&#x8FC7;&#x6EE4;&#x65B9;&#x6CD5;&#x9002;&#x7528;&#x4E8E;&#x901A;&#x5E38;&#x7684;&#x7F13;&#x5B58;&#x89C4;&#x5219;&#x3002;"> has_child &#x8FC7;&#x6EE4;&#x7684;&#x7ED3;&#x679C;&#x6CA1;&#x6709;&#x88AB;&#x7F13;&#x5B58;&#xFF0C;&#x4F46;&#x662F; has_child &#x8FC7;&#x6EE4;&#x5185;&#x90E8;&#x7684;&#x8FC7;&#x6EE4;&#x65B9;&#x6CD5;&#x9002;&#x7528;&#x4E8E;&#x901A;&#x5E38;&#x7684;&#x7F13;&#x5B58;&#x89C4;&#x5219;&#x3002;</a></li><ul><li><a href="#&#x901A;&#x8FC7;&#x7236;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x5B50;&#x6587;&#x6863;">&#x901A;&#x8FC7;&#x7236;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x5B50;&#x6587;&#x6863;</a></li><li><a href="#&#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;">&#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;</a></li><li><a href="#&#x7956;&#x8F88;&#x4E0E;&#x5B59;&#x8F88;&#x5173;&#x7CFB;">&#x7956;&#x8F88;&#x4E0E;&#x5B59;&#x8F88;&#x5173;&#x7CFB;</a></li><li><a href="#&#x5B9E;&#x9645;&#x4F7F;&#x7528;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x5EFA;&#x8BAE;">&#x5B9E;&#x9645;&#x4F7F;&#x7528;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x5EFA;&#x8BAE;</a></li></ul><li><a href="#&#x6269;&#x5BB9;&#x8BBE;&#x8BA1;">&#x6269;&#x5BB9;&#x8BBE;&#x8BA1;</a></li><ul><li><a href="#&#x6269;&#x5BB9;&#x7684;&#x5355;&#x5143;">&#x6269;&#x5BB9;&#x7684;&#x5355;&#x5143;</a></li><li><a href="#&#x5206;&#x7247;&#x9884;&#x5206;&#x914D;">&#x5206;&#x7247;&#x9884;&#x5206;&#x914D;</a></li><li><a href="#&#x6D77;&#x91CF;&#x5206;&#x7247;">&#x6D77;&#x91CF;&#x5206;&#x7247;</a></li><li><a href="#&#x5BB9;&#x91CF;&#x89C4;&#x5212;">&#x5BB9;&#x91CF;&#x89C4;&#x5212;</a></li><li><a href="#&#x526F;&#x672C;&#x5206;&#x7247;">&#x526F;&#x672C;&#x5206;&#x7247;</a></li><li><a href="#&#x591A;&#x7D22;&#x5F15;">&#x591A;&#x7D22;&#x5F15;</a></li><li><a href="#&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;">&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;</a></li><li><a href="#&#x7D22;&#x5F15;&#x6A21;&#x677F;">&#x7D22;&#x5F15;&#x6A21;&#x677F;</a></li><li><a href="#&#x6570;&#x636E;&#x8FC7;&#x671F;">&#x6570;&#x636E;&#x8FC7;&#x671F;</a></li><li><a href="#&#x57FA;&#x4E8E;&#x7528;&#x6237;&#x7684;&#x6570;&#x636E;">&#x57FA;&#x4E8E;&#x7528;&#x6237;&#x7684;&#x6570;&#x636E;</a></li><li><a href="#&#x5171;&#x4EAB;&#x7D22;&#x5F15;">&#x5171;&#x4EAB;&#x7D22;&#x5F15;</a></li><li><a href="#&#x5229;&#x7528;&#x522B;&#x540D;&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;">&#x5229;&#x7528;&#x522B;&#x540D;&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;</a></li><li><a href="#&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x7528;&#x6237;">&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x7528;&#x6237;</a></li><li><a href="#&#x6269;&#x5BB9;&#x5E76;&#x4E0D;&#x662F;&#x65E0;&#x9650;&#x7684;">&#x6269;&#x5BB9;&#x5E76;&#x4E0D;&#x662F;&#x65E0;&#x9650;&#x7684;</a></li></ul></ul></ul></div><a href="#&#x6570;&#x636E;&#x5EFA;&#x6A21;" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a><h1 id="&#x6570;&#x636E;&#x5EFA;&#x6A21;"><a name="&#x6570;&#x636E;&#x5EFA;&#x6A21;" class="anchor-navigation-ex-anchor" href="#&#x6570;&#x636E;&#x5EFA;&#x6A21;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6570;&#x636E;&#x5EFA;&#x6A21;</h1>
<p>Elasticsearch &#x662F;&#x5982;&#x6B64;&#x4E0E;&#x4F17;&#x4E0D;&#x540C;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x5982;&#x679C;&#x4F60;&#x6765;&#x81EA; SQL &#x7684;&#x4E16;&#x754C;&#x3002; Elasticsearch &#x6709;&#x975E;&#x5E38;&#x591A;&#x7684;&#x4F18;&#x70B9;&#xFF1A;&#x9AD8;&#x6027;&#x80FD;&#x3001;&#x53EF;&#x6269;&#x5C55;&#x3001;&#x8FD1;&#x5B9E;&#x65F6;&#x641C;&#x7D22;&#xFF0C;&#x5E76;&#x652F;&#x6301;&#x5927;&#x6570;&#x636E;&#x91CF;&#x7684;&#x6570;&#x636E;&#x5206;&#x6790;&#x3002;&#x4E00;&#x5207;&#x90FD;&#x5F88;&#x5BB9;&#x6613;&#xFF01; &#x53EA;&#x9700;&#x4E0B;&#x8F7D;&#x5E76;&#x5F00;&#x59CB;&#x4F7F;&#x7528;&#x5B83;&#x3002;</p>
<p>&#x4F46;&#x5B83;&#x4E0D;&#x662F;&#x9B54;&#x6CD5;&#x3002;&#x4E3A;&#x4E86;&#x5145;&#x5206;&#x5229;&#x7528; Elasticsearch&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x4E86;&#x89E3;&#x5B83;&#x7684;&#x5DE5;&#x4F5C;&#x673A;&#x5236;&#xFF0C;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x8BA9;&#x5B83;&#x5982;&#x4F60;&#x6240;&#x9700;&#x7684;&#x8FDB;&#x884C;&#x5DE5;&#x4F5C;&#x3002;</p>
<p>&#x548C;&#x4E13;&#x7528;&#x7684;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5B58;&#x50A8;&#x6709;&#x6240;&#x4E0D;&#x540C;&#xFF0C;Elasticsearch &#x5E76;&#x6CA1;&#x6709;&#x5BF9;&#x5904;&#x7406;&#x5B9E;&#x4F53;&#x4E4B;&#x95F4;&#x7684;&#x5173;&#x7CFB;&#x7ED9;&#x51FA;&#x76F4;&#x63A5;&#x7684;&#x65B9;&#x6CD5;&#x3002; &#x4E00;&#x4E2A;&#x5173;&#x7CFB;&#x6570;&#x636E;&#x5E93;&#x7684;&#x9EC4;&#x91D1;&#x6CD5;&#x5219;&#x662F; --&#x89C4;&#x8303;&#x5316;&#x4F60;&#x7684;&#x6570;&#x636E;&#xFF08;&#x8303;&#x5F0F;&#xFF09;-- &#x4F46;&#x8FD9;&#x4E0D;&#x9002;&#x7528;&#x4E8E; Elasticsearch&#x3002; &#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/relations.html" target="_blank"><em>&#x5173;&#x8054;&#x5173;&#x7CFB;&#x5904;&#x7406;</em></a> &#x3001; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-objects.html" target="_blank"><em>&#x5D4C;&#x5957;&#x5BF9;&#x8C61;</em></a> &#x548C; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/parent-child.html" target="_blank"><em>&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;</em></a> &#x6211;&#x4EEC;&#x8BA8;&#x8BBA;&#x4E86;&#x8FD9;&#x4E9B;&#x63D0;&#x4F9B;&#x7684;&#x65B9;&#x6CD5;&#x7684;&#x4F18;&#x70B9;&#x548C;&#x7F3A;&#x70B9;&#x3002;</p>
<p>&#x7136;&#x540E;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/scale.html" target="_blank"><em>&#x6269;&#x5BB9;&#x8BBE;&#x8BA1;</em></a> &#x6211;&#x4EEC;&#x8C08;&#x8BBA; Elasticsearch &#x63D0;&#x4F9B;&#x7684;&#x5FEB;&#x901F;&#x3001;&#x7075;&#x6D3B;&#x7684;&#x6269;&#x5BB9;&#x80FD;&#x529B;&#x3002; &#x5F53;&#x7136;&#x6269;&#x5BB9;&#x5E76;&#x6CA1;&#x6709;&#x4E00;&#x4E2A;&#x653E;&#x4E4B;&#x56DB;&#x6D77;&#x800C;&#x7686;&#x51C6;&#x7684;&#x65B9;&#x6848;&#x3002;&#x4F60;&#x9700;&#x8981;&#x8003;&#x8651;&#x8FD9;&#x4E9B;&#x901A;&#x8FC7;&#x7CFB;&#x7EDF;&#x4EA7;&#x751F;&#x7684;&#x6570;&#x636E;&#x6D41;&#x7684;&#x5177;&#x4F53;&#x7279;&#x70B9;&#xFF0C; &#x636E;&#x6B64;&#x8BBE;&#x8BA1;&#x4F60;&#x7684;&#x6A21;&#x578B;&#x3002;&#x4F8B;&#x5982;&#x65E5;&#x5FD7;&#x4E8B;&#x4EF6;&#x6216;&#x8005;&#x793E;&#x4EA4;&#x7F51;&#x7EDC;&#x6D41;&#x8FD9;&#x4E9B;&#x65F6;&#x95F4;&#x5E8F;&#x5217;&#x6570;&#x636E;&#x7C7B;&#x578B;&#xFF0C;&#x548C;&#x9759;&#x6001;&#x6587;&#x6863;&#x96C6;&#x5408;&#x5728;&#x5904;&#x7406;&#x6A21;&#x578B;&#x4E0A;&#x6709;&#x7740;&#x5F88;&#x5927;&#x7684;&#x4E0D;&#x540C;&#x3002;</p>
<p>&#x6700;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x804A;&#x4E00;&#x4E0B; Elasticsearch &#x91CC;&#x9762;&#x4E0D;&#x80FD;&#x4F38;&#x7F29;&#x7684;&#x4E00;&#x4EF6;&#x4E8B;&#x3002;</p>
<h2 id="&#x5173;&#x8054;&#x5173;&#x7CFB;&#x5904;&#x7406;"><a name="&#x5173;&#x8054;&#x5173;&#x7CFB;&#x5904;&#x7406;" class="anchor-navigation-ex-anchor" href="#&#x5173;&#x8054;&#x5173;&#x7CFB;&#x5904;&#x7406;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5173;&#x8054;&#x5173;&#x7CFB;&#x5904;&#x7406;</h2>
<p>&#x73B0;&#x5B9E;&#x4E16;&#x754C;&#x6709;&#x5F88;&#x591A;&#x91CD;&#x8981;&#x7684;&#x5173;&#x8054;&#x5173;&#x7CFB;&#xFF1A;&#x535A;&#x5BA2;&#x5E16;&#x5B50;&#x6709;&#x4E00;&#x4E9B;&#x8BC4;&#x8BBA;&#xFF0C;&#x94F6;&#x884C;&#x8D26;&#x6237;&#x6709;&#x591A;&#x6B21;&#x4EA4;&#x6613;&#x8BB0;&#x5F55;&#xFF0C;&#x5BA2;&#x6237;&#x6709;&#x591A;&#x4E2A;&#x94F6;&#x884C;&#x8D26;&#x6237;&#xFF0C;&#x8BA2;&#x5355;&#x6709;&#x591A;&#x4E2A;&#x8BA2;&#x5355;&#x660E;&#x7EC6;&#xFF0C;&#x6587;&#x4EF6;&#x76EE;&#x5F55;&#x6709;&#x591A;&#x4E2A;&#x6587;&#x4EF6;&#x548C;&#x5B50;&#x76EE;&#x5F55;&#x3002;</p>
<p>&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x88AB;&#x660E;&#x786E;&#x8BBE;&#x8BA1;--&#x6BEB;&#x4E0D;&#x610F;&#x5916;--&#x7528;&#x6765;&#x8FDB;&#x884C;&#x5173;&#x8054;&#x5173;&#x7CFB;&#x7BA1;&#x7406; &#xFF1A;</p>
<ul>
<li>&#x6BCF;&#x4E2A;&#x5B9E;&#x4F53;&#xFF08;&#x6216; <em>&#x884C;</em> &#xFF0C;&#x5728;&#x5173;&#x7CFB;&#x4E16;&#x754C;&#x4E2D;&#xFF09;&#x53EF;&#x4EE5;&#x88AB; <em>&#x4E3B;&#x952E;</em> &#x552F;&#x4E00;&#x6807;&#x8BC6;&#x3002;</li>
<li>&#x5B9E;&#x4F53; <em>&#x89C4;&#x8303;&#x5316;</em> &#xFF08;&#x8303;&#x5F0F;&#xFF09;&#x3002;&#x552F;&#x4E00;&#x5B9E;&#x4F53;&#x7684;&#x6570;&#x636E;&#x53EA;&#x5B58;&#x50A8;&#x4E00;&#x6B21;&#xFF0C;&#x800C;&#x76F8;&#x5173;&#x5B9E;&#x4F53;&#x53EA;&#x5B58;&#x50A8;&#x5B83;&#x7684;&#x4E3B;&#x952E;&#x3002;&#x53EA;&#x80FD;&#x5728;&#x4E00;&#x4E2A;&#x5177;&#x4F53;&#x4F4D;&#x7F6E;&#x4FEE;&#x6539;&#x8FD9;&#x4E2A;&#x5B9E;&#x4F53;&#x7684;&#x6570;&#x636E;&#x3002;</li>
<li>&#x5B9E;&#x4F53;&#x53EF;&#x4EE5;&#x8FDB;&#x884C;&#x5173;&#x8054;&#x67E5;&#x8BE2;&#xFF0C;&#x53EF;&#x4EE5;&#x8DE8;&#x5B9E;&#x4F53;&#x641C;&#x7D22;&#x3002;</li>
<li>&#x5355;&#x4E2A;&#x5B9E;&#x4F53;&#x7684;&#x53D8;&#x5316;&#x662F; <em>&#x539F;&#x5B50;&#x7684;</em> &#xFF0C; <em>&#x4E00;&#x81F4;&#x7684;</em> &#xFF0C; <em>&#x9694;&#x79BB;&#x7684;</em> &#xFF0C; &#x548C; <em>&#x6301;&#x4E45;&#x7684;</em> &#x3002; &#xFF08;&#x53EF;&#x4EE5;&#x5728; <a href="http://en.wikipedia.org/wiki/ACID_transactions" target="_blank"><em>ACID Transactions</em></a> &#x4E2D;&#x67E5;&#x770B;&#x66F4;&#x591A;&#x7EC6;&#x8282;&#x3002;&#xFF09;</li>
<li>&#x5927;&#x591A;&#x6570;&#x5173;&#x7CFB;&#x6570;&#x636E;&#x5E93;&#x652F;&#x6301;&#x8DE8;&#x591A;&#x4E2A;&#x5B9E;&#x4F53;&#x7684; ACID &#x4E8B;&#x52A1;&#x3002;</li>
</ul>
<p>&#x4F46;&#x662F;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x6709;&#x5176;&#x5C40;&#x9650;&#x6027;&#xFF0C;&#x5305;&#x62EC;&#x5BF9;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x6709;&#x9650;&#x7684;&#x652F;&#x6301;&#x80FD;&#x529B;&#x3002; &#x5B9E;&#x4F53;&#x5173;&#x8054;&#x67E5;&#x8BE2;&#x65F6;&#x95F4;&#x6D88;&#x8017;&#x662F;&#x5F88;&#x6602;&#x8D35;&#x7684;&#xFF0C;&#x5173;&#x8054;&#x7684;&#x8D8A;&#x591A;&#xFF0C;&#x6D88;&#x8017;&#x5C31;&#x8D8A;&#x6602;&#x8D35;&#x3002;&#x7279;&#x522B;&#x662F;&#x8DE8;&#x670D;&#x52A1;&#x5668;&#x8FDB;&#x884C;&#x5B9E;&#x4F53;&#x5173;&#x8054;&#x65F6;&#x6210;&#x672C;&#x6781;&#x5176;&#x6602;&#x8D35;&#xFF0C;&#x57FA;&#x672C;&#x4E0D;&#x53EF;&#x7528;&#x3002; &#x4F46;&#x5355;&#x4E2A;&#x7684;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#x53C8;&#x5B58;&#x5728;&#x6570;&#x636E;&#x91CF;&#x7684;&#x9650;&#x5236;&#x3002;</p>
<p>Elasticsearch &#xFF0C;&#x548C;&#x5927;&#x591A;&#x6570; NoSQL &#x6570;&#x636E;&#x5E93;&#x7C7B;&#x4F3C;&#xFF0C;&#x662F;&#x6241;&#x5E73;&#x5316;&#x7684;&#x3002;&#x7D22;&#x5F15;&#x662F;&#x72EC;&#x7ACB;&#x6587;&#x6863;&#x7684;&#x96C6;&#x5408;&#x4F53;&#x3002; &#x6587;&#x6863;&#x662F;&#x5426;&#x5339;&#x914D;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x53D6;&#x51B3;&#x4E8E;&#x5B83;&#x662F;&#x5426;&#x5305;&#x542B;&#x6240;&#x6709;&#x7684;&#x6240;&#x9700;&#x4FE1;&#x606F;&#x3002;</p>
<p>Elasticsearch &#x4E2D;&#x5355;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x6570;&#x636E;&#x53D8;&#x66F4;&#x662F; <a href="http://en.wikipedia.org/wiki/ACID_transactions" target="_blank">ACIDic</a> &#x7684;&#xFF0C; &#x800C;&#x6D89;&#x53CA;&#x591A;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x4E8B;&#x52A1;&#x5219;&#x4E0D;&#x662F;&#x3002;&#x5F53;&#x4E00;&#x4E2A;&#x4E8B;&#x52A1;&#x90E8;&#x5206;&#x5931;&#x8D25;&#x65F6;&#xFF0C;&#x65E0;&#x6CD5;&#x56DE;&#x6EDA;&#x7D22;&#x5F15;&#x6570;&#x636E;&#x5230;&#x524D;&#x4E00;&#x4E2A;&#x72B6;&#x6001;&#x3002;</p>
<p>&#x6241;&#x5E73;&#x5316;&#x6709;&#x4EE5;&#x4E0B;&#x4F18;&#x52BF;&#xFF1A;</p>
<ul>
<li>&#x7D22;&#x5F15;&#x8FC7;&#x7A0B;&#x662F;&#x5FEB;&#x901F;&#x548C;&#x65E0;&#x9501;&#x7684;&#x3002;</li>
<li>&#x641C;&#x7D22;&#x8FC7;&#x7A0B;&#x662F;&#x5FEB;&#x901F;&#x548C;&#x65E0;&#x9501;&#x7684;&#x3002;</li>
<li>&#x56E0;&#x4E3A;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x76F8;&#x4E92;&#x90FD;&#x662F;&#x72EC;&#x7ACB;&#x7684;&#xFF0C;&#x5927;&#x89C4;&#x6A21;&#x6570;&#x636E;&#x53EF;&#x4EE5;&#x5728;&#x591A;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x8FDB;&#x884C;&#x5206;&#x5E03;&#x3002;</li>
</ul>
<p>&#x4F46;&#x5173;&#x8054;&#x5173;&#x7CFB;&#x4ECD;&#x7136;&#x975E;&#x5E38;&#x91CD;&#x8981;&#x3002;&#x67D0;&#x4E9B;&#x65F6;&#x5019;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7F29;&#x5C0F;&#x6241;&#x5E73;&#x5316;&#x548C;&#x73B0;&#x5B9E;&#x4E16;&#x754C;&#x5173;&#x7CFB;&#x6A21;&#x578B;&#x7684;&#x5DEE;&#x5F02;&#x3002; &#x4EE5;&#x4E0B;&#x56DB;&#x79CD;&#x5E38;&#x7528;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x7528;&#x6765;&#x5728; Elasticsearch &#x4E2D;&#x8FDB;&#x884C;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x7684;&#x7BA1;&#x7406;&#xFF1A;</p>
<ul>
<li><a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/application-joins.html" target="_blank">Application-side joins</a></li>
<li><a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/denormalization.html" target="_blank">Data denormalization</a></li>
<li><a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-objects.html" target="_blank">Nested objects</a></li>
<li><a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/parent-child.html" target="_blank">Parent/child relationships</a></li>
</ul>
<p>&#x901A;&#x5E38;&#x90FD;&#x9700;&#x8981;&#x7ED3;&#x5408;&#x5176;&#x4E2D;&#x7684;&#x67D0;&#x51E0;&#x4E2A;&#x65B9;&#x6CD5;&#x6765;&#x5F97;&#x5230;&#x6700;&#x7EC8;&#x7684;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x3002;</p>
<h3 id="&#x5E94;&#x7528;&#x5C42;&#x8054;&#x63A5;"><a name="&#x5E94;&#x7528;&#x5C42;&#x8054;&#x63A5;" class="anchor-navigation-ex-anchor" href="#&#x5E94;&#x7528;&#x5C42;&#x8054;&#x63A5;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5E94;&#x7528;&#x5C42;&#x8054;&#x63A5;</h3>
<p>&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x5728;&#x6211;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x5B9E;&#x73B0;&#x8054;&#x63A5;&#x53EF;&#x4EE5;&#xFF08;&#x90E8;&#x5206;&#xFF09;&#x6A21;&#x62DF;&#x5173;&#x7CFB; &#x6570;&#x636E;&#x5E93;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x6BD4;&#x65B9;&#x8BF4;&#x6211;&#x4EEC;&#x6B63;&#x5728;&#x5BF9;&#x7528;&#x6237;&#x548C;&#x4ED6;&#x4EEC;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x8FDB;&#x884C;&#x7D22;&#x5F15;&#x3002;&#x5728;&#x5173;&#x7CFB;&#x4E16;&#x754C;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x4F1A;&#x8FD9;&#x6837;&#x6765;&#x64CD;&#x4F5C;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index/user/<span class="hljs-number">1</span>                        &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;name&quot;</span>:     <span class="hljs-string">&quot;John Smith&quot;</span>,
  <span class="hljs-string">&quot;email&quot;</span>:    <span class="hljs-string">&quot;john@smith.com&quot;</span>,
  <span class="hljs-string">&quot;dob&quot;</span>:      <span class="hljs-string">&quot;1970/10/24&quot;</span>
}

PUT /my_index/blogpost/<span class="hljs-number">2</span>                    &lt;<span class="hljs-number">2</span>&gt;
{
  <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;Relationships&quot;</span>,
  <span class="hljs-string">&quot;body&quot;</span>:     <span class="hljs-string">&quot;It&apos;s complicated...&quot;</span>,
  <span class="hljs-string">&quot;user&quot;</span>:     <span class="hljs-number">1</span>                             &lt;<span class="hljs-number">3</span>&gt;
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <img src="assets/2.png" alt="img">  &#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x7684; <code>index</code>, <code>type</code>, &#x548C; <code>id</code> &#x4E00;&#x8D77;&#x6784;&#x9020;&#x6210;&#x4E3B;&#x952E;&#x3002;         </p>
<p> <img src="assets/3.png" alt="img">  <code>blogpost</code> &#x901A;&#x8FC7;&#x7528;&#x6237;&#x7684; <code>id</code> &#x94FE;&#x63A5;&#x5230;&#x7528;&#x6237;&#x3002;<code>index</code> &#x548C; <code>type</code> &#x5E76;&#x4E0D;&#x9700;&#x8981;&#x56E0;&#x4E3A;&#x5728;&#x6211;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x5DF2;&#x7ECF;&#x786C;&#x7F16;&#x7801;&#x3002;  </p>
</blockquote>
<p>&#x901A;&#x8FC7;&#x7528;&#x6237;&#x7684; ID <code>1</code> &#x53EF;&#x4EE5;&#x5F88;&#x5BB9;&#x6613;&#x7684;&#x627E;&#x5230;&#x535A;&#x5BA2;&#x5E16;&#x5B50;&#x3002;</p>
<pre><code class="lang-json">GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;filtered&quot;</span>: {
      <span class="hljs-string">&quot;filter&quot;</span>: {
        <span class="hljs-string">&quot;term&quot;</span>: { <span class="hljs-string">&quot;user&quot;</span>: <span class="hljs-number">1</span> }
      }
    }
  }
}
</code></pre>
<p>&#x4E3A;&#x4E86;&#x627E;&#x5230;&#x7528;&#x6237;&#x53EB;&#x505A; John &#x7684;&#x535A;&#x5BA2;&#x5E16;&#x5B50;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x8FD0;&#x884C;&#x4E24;&#x6B21;&#x67E5;&#x8BE2;&#xFF1A; &#x7B2C;&#x4E00;&#x6B21;&#x4F1A;&#x67E5;&#x627E;&#x6240;&#x6709;&#x53EB;&#x505A; John &#x7684;&#x7528;&#x6237;&#x4ECE;&#x800C;&#x83B7;&#x53D6;&#x4ED6;&#x4EEC;&#x7684; ID &#x96C6;&#x5408;&#xFF0C;&#x63A5;&#x7740;&#x7B2C;&#x4E8C;&#x6B21;&#x4F1A;&#x5C06;&#x8FD9;&#x4E9B; ID &#x96C6;&#x5408;&#x653E;&#x5230;&#x7C7B;&#x4F3C;&#x4E8E;&#x524D;&#x9762;&#x4E00;&#x4E2A;&#x4F8B;&#x5B50;&#x7684;&#x67E5;&#x8BE2;&#xFF1A;</p>
<pre><code class="lang-json">GET /my_index/user/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;match&quot;</span>: {
      <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;John&quot;</span>
    }
  }
}

GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;filtered&quot;</span>: {
      <span class="hljs-string">&quot;filter&quot;</span>: {
        <span class="hljs-string">&quot;terms&quot;</span>: { <span class="hljs-string">&quot;user&quot;</span>: [<span class="hljs-number">1</span>] }         &lt;<span class="hljs-number">1</span>&gt;
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x6267;&#x884C;&#x7B2C;&#x4E00;&#x4E2A;&#x67E5;&#x8BE2;&#x5F97;&#x5230;&#x7684;&#x7ED3;&#x679C;&#x5C06;&#x586B;&#x5145;&#x5230; <code>terms</code> &#x8FC7;&#x6EE4;&#x5668;&#x4E2D;&#x3002;   </p>
</blockquote>
<p>&#x5E94;&#x7528;&#x5C42;&#x8054;&#x63A5;&#x7684;&#x4E3B;&#x8981;&#x4F18;&#x70B9;&#x662F;&#x53EF;&#x4EE5;&#x5BF9;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x6807;&#x51C6;&#x5316;&#x5904;&#x7406;&#x3002;&#x53EA;&#x80FD;&#x5728; <code>user</code> &#x6587;&#x6863;&#x4E2D;&#x4FEE;&#x6539;&#x7528;&#x6237;&#x7684;&#x540D;&#x79F0;&#x3002;&#x7F3A;&#x70B9;&#x662F;&#xFF0C;&#x4E3A;&#x4E86;&#x5728;&#x641C;&#x7D22;&#x65F6;&#x8054;&#x63A5;&#x6587;&#x6863;&#xFF0C;&#x5FC5;&#x987B;&#x8FD0;&#x884C;&#x989D;&#x5916;&#x7684;&#x67E5;&#x8BE2;&#x3002;</p>
<p>&#x5728;&#x8FD9;&#x4E2A;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x5339;&#x914D;&#x6211;&#x4EEC;&#x7684;&#x7B2C;&#x4E00;&#x4E2A;&#x67E5;&#x8BE2;&#xFF0C;&#x4F46;&#x5728;&#x73B0;&#x5B9E;&#x4E16;&#x754C;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5F88;&#x8F7B;&#x6613;&#x7684;&#x9047;&#x5230;&#x6570;&#x4EE5;&#x767E;&#x4E07;&#x8BA1;&#x7684;&#x53EB;&#x505A; John &#x7684;&#x7528;&#x6237;&#x3002; &#x5305;&#x542B;&#x6240;&#x6709;&#x8FD9;&#x4E9B;&#x7528;&#x6237;&#x7684; IDs &#x4F1A;&#x4EA7;&#x751F;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x5927;&#x7684;&#x67E5;&#x8BE2;&#xFF0C;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x6570;&#x767E;&#x4E07;&#x8BCD;&#x9879;&#x7684;&#x67E5;&#x627E;&#x3002;</p>
<p>&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x9002;&#x7528;&#x4E8E;&#x7B2C;&#x4E00;&#x4E2A;&#x5B9E;&#x4F53;&#xFF08;&#x4F8B;&#x5982;&#xFF0C;&#x5728;&#x8FD9;&#x4E2A;&#x4F8B;&#x5B50;&#x4E2D; <code>user</code> &#xFF09;&#x53EA;&#x6709;&#x5C11;&#x91CF;&#x7684;&#x6587;&#x6863;&#x8BB0;&#x5F55;&#x7684;&#x60C5;&#x51B5;&#xFF0C;&#x5E76;&#x4E14;&#x6700;&#x597D;&#x5B83;&#x4EEC;&#x5F88;&#x5C11;&#x6539;&#x53D8;&#x3002;&#x8FD9;&#x5C06;&#x5141;&#x8BB8;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x5BF9;&#x7ED3;&#x679C;&#x8FDB;&#x884C;&#x7F13;&#x5B58;&#xFF0C;&#x5E76;&#x907F;&#x514D;&#x7ECF;&#x5E38;&#x8FD0;&#x884C;&#x7B2C;&#x4E00;&#x6B21;&#x67E5;&#x8BE2;&#x3002;</p>
<h3 id="&#x975E;&#x89C4;&#x8303;&#x5316;&#x4F60;&#x7684;&#x6570;&#x636E;"><a name="&#x975E;&#x89C4;&#x8303;&#x5316;&#x4F60;&#x7684;&#x6570;&#x636E;" class="anchor-navigation-ex-anchor" href="#&#x975E;&#x89C4;&#x8303;&#x5316;&#x4F60;&#x7684;&#x6570;&#x636E;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x975E;&#x89C4;&#x8303;&#x5316;&#x4F60;&#x7684;&#x6570;&#x636E;</h3>
<p>&#x4F7F;&#x7528; Elasticsearch &#x5F97;&#x5230;&#x6700;&#x597D;&#x7684;&#x641C;&#x7D22;&#x6027;&#x80FD;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x6709;&#x76EE;&#x7684;&#x7684;&#x901A;&#x8FC7;&#x5728;&#x7D22;&#x5F15;&#x65F6;&#x8FDB;&#x884C;&#x975E;&#x89C4;&#x8303;&#x5316; <a href="http://en.wikipedia.org/wiki/Denormalization" target="_blank">denormalizing</a>&#x3002;&#x5BF9;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x4FDD;&#x6301;&#x4E00;&#x5B9A;&#x6570;&#x91CF;&#x7684;&#x5197;&#x4F59;&#x526F;&#x672C;&#x53EF;&#x4EE5;&#x5728;&#x9700;&#x8981;&#x8BBF;&#x95EE;&#x65F6;&#x907F;&#x514D;&#x8FDB;&#x884C;&#x5173;&#x8054;&#x3002;</p>
<p>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x80FD;&#x591F;&#x901A;&#x8FC7;&#x67D0;&#x4E2A;&#x7528;&#x6237;&#x59D3;&#x540D;&#x627E;&#x5230;&#x4ED6;&#x5199;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#xFF0C;&#x53EF;&#x4EE5;&#x5728;&#x535A;&#x5BA2;&#x6587;&#x6863;&#x4E2D;&#x5305;&#x542B;&#x8FD9;&#x4E2A;&#x7528;&#x6237;&#x7684;&#x59D3;&#x540D;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index/user/<span class="hljs-number">1</span>
{
  <span class="hljs-string">&quot;name&quot;</span>:     <span class="hljs-string">&quot;John Smith&quot;</span>,
  <span class="hljs-string">&quot;email&quot;</span>:    <span class="hljs-string">&quot;john@smith.com&quot;</span>,
  <span class="hljs-string">&quot;dob&quot;</span>:      <span class="hljs-string">&quot;1970/10/24&quot;</span>
}

PUT /my_index/blogpost/<span class="hljs-number">2</span>
{
  <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;Relationships&quot;</span>,
  <span class="hljs-string">&quot;body&quot;</span>:     <span class="hljs-string">&quot;It&apos;s complicated...&quot;</span>,
  <span class="hljs-string">&quot;user&quot;</span>:     {
    <span class="hljs-string">&quot;id&quot;</span>:       <span class="hljs-number">1</span>,
    <span class="hljs-string">&quot;name&quot;</span>:     <span class="hljs-string">&quot;John Smith&quot;</span>                &lt;<span class="hljs-number">1</span>&gt;
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x8FD9;&#x90E8;&#x5206;&#x7528;&#x6237;&#x7684;&#x5B57;&#x6BB5;&#x6570;&#x636E;&#x5DF2;&#x88AB;&#x5197;&#x4F59;&#x5230; <code>blogpost</code> &#x6587;&#x6863;&#x4E2D;&#x3002;   </p>
</blockquote>
<p>&#x73B0;&#x5728;&#xFF0C;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x5355;&#x6B21;&#x67E5;&#x8BE2;&#x5C31;&#x80FD;&#x591F;&#x901A;&#x8FC7; <code>relationships</code> &#x627E;&#x5230;&#x7528;&#x6237; <code>John</code> &#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x3002;</p>
<pre><code class="lang-json">GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;bool&quot;</span>: {
      <span class="hljs-string">&quot;must&quot;</span>: [
        { <span class="hljs-string">&quot;match&quot;</span>: { <span class="hljs-string">&quot;title&quot;</span>:     <span class="hljs-string">&quot;relationships&quot;</span> }},
        { <span class="hljs-string">&quot;match&quot;</span>: { <span class="hljs-string">&quot;user.name&quot;</span>: <span class="hljs-string">&quot;John&quot;</span>          }}
      ]
    }
  }
}
</code></pre>
<p>&#x6570;&#x636E;&#x975E;&#x89C4;&#x8303;&#x5316;&#x7684;&#x4F18;&#x70B9;&#x662F;&#x901F;&#x5EA6;&#x5FEB;&#x3002;&#x56E0;&#x4E3A;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x5305;&#x542B;&#x4E86;&#x6240;&#x9700;&#x7684;&#x6240;&#x6709;&#x4FE1;&#x606F;&#xFF0C;&#x5F53;&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#x9700;&#x8981;&#x5728;&#x67E5;&#x8BE2;&#x8FDB;&#x884C;&#x5339;&#x914D;&#x65F6;&#xFF0C;&#x5E76;&#x4E0D;&#x9700;&#x8981;&#x8FDB;&#x884C;&#x6602;&#x8D35;&#x7684;&#x8054;&#x63A5;&#x64CD;&#x4F5C;&#x3002;</p>
<h3 id="&#x5B57;&#x6BB5;&#x6298;&#x53E0;"><a name="&#x5B57;&#x6BB5;&#x6298;&#x53E0;" class="anchor-navigation-ex-anchor" href="#&#x5B57;&#x6BB5;&#x6298;&#x53E0;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5B57;&#x6BB5;&#x6298;&#x53E0;</h3>
<p>&#x4E00;&#x4E2A;&#x666E;&#x904D;&#x7684;&#x9700;&#x6C42;&#x662F;&#x9700;&#x8981;&#x901A;&#x8FC7;&#x7279;&#x5B9A;&#x5B57;&#x6BB5;&#x8FDB;&#x884C;&#x5206;&#x7EC4;&#x3002; &#x4F8B;&#x5982;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x6309;&#x7167;&#x7528;&#x6237;&#x540D;&#x79F0; <em>&#x5206;&#x7EC4;</em> &#x8FD4;&#x56DE;&#x6700;&#x76F8;&#x5173;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x3002;&#x6309;&#x7167;&#x7528;&#x6237;&#x540D;&#x5206;&#x7EC4;&#x610F;&#x5473;&#x7740;&#x8FDB;&#x884C; <code>terms</code> &#x805A;&#x5408;&#x3002; &#x4E3A;&#x80FD;&#x591F;&#x6309;&#x7167;&#x7528;&#x6237; <em>&#x6574;&#x4F53;</em> &#x540D;&#x79F0;&#x8FDB;&#x884C;&#x5206;&#x7EC4;&#xFF0C;&#x540D;&#x79F0;&#x5B57;&#x6BB5;&#x5E94;&#x4FDD;&#x6301; <code>not_analyzed</code> &#x7684;&#x5F62;&#x5F0F;&#xFF0C; &#x5177;&#x4F53;&#x8BF4;&#x660E;&#x53C2;&#x8003; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/aggregations-and-analysis.html" target="_blank">&#x805A;&#x5408;&#x4E0E;&#x5206;&#x6790;</a>&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index/_mapping/blogpost
{
  <span class="hljs-string">&quot;properties&quot;</span>: {
    <span class="hljs-string">&quot;user&quot;</span>: {
      <span class="hljs-string">&quot;properties&quot;</span>: {
        <span class="hljs-string">&quot;name&quot;</span>: {                            &lt;1&gt;
          &quot;type&quot;: &quot;string&quot;,
          &quot;fields&quot;: {
            &quot;raw&quot;: {                         &lt;2&gt;
              &quot;type&quot;:  &quot;string&quot;,
              &quot;index&quot;: &quot;not_analyzed&quot;
            }
          }
        }
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>user.name</code> &#x5B57;&#x6BB5;&#x5C06;&#x7528;&#x6765;&#x8FDB;&#x884C;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  <code>user.name.raw</code> &#x5B57;&#x6BB5;&#x5C06;&#x7528;&#x6765;&#x901A;&#x8FC7; <code>terms</code> &#x805A;&#x5408;&#x8FDB;&#x884C;&#x5206;&#x7EC4;&#x3002;  </p>
</blockquote>
<p>&#x7136;&#x540E;&#x6DFB;&#x52A0;&#x4E00;&#x4E9B;&#x6570;&#x636E;:</p>
<pre><code class="lang-json">PUT /my_index/user/<span class="hljs-number">1</span>
{
  <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;John Smith&quot;</span>,
  <span class="hljs-string">&quot;email&quot;</span>: <span class="hljs-string">&quot;john@smith.com&quot;</span>,
  <span class="hljs-string">&quot;dob&quot;</span>: <span class="hljs-string">&quot;1970/10/24&quot;</span>
}

PUT /my_index/blogpost/<span class="hljs-number">2</span>
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;Relationships&quot;</span>,
  <span class="hljs-string">&quot;body&quot;</span>: <span class="hljs-string">&quot;It&apos;s complicated...&quot;</span>,
  <span class="hljs-string">&quot;user&quot;</span>: {
    <span class="hljs-string">&quot;id&quot;</span>: <span class="hljs-number">1</span>,
    <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;John Smith&quot;</span>
  }
}

PUT /my_index/user/<span class="hljs-number">3</span>
{
  <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Alice John&quot;</span>,
  <span class="hljs-string">&quot;email&quot;</span>: <span class="hljs-string">&quot;alice@john.com&quot;</span>,
  <span class="hljs-string">&quot;dob&quot;</span>: <span class="hljs-string">&quot;1979/01/04&quot;</span>
}

PUT /my_index/blogpost/<span class="hljs-number">4</span>
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;Relationships are cool&quot;</span>,
  <span class="hljs-string">&quot;body&quot;</span>: <span class="hljs-string">&quot;It&apos;s not complicated at all...&quot;</span>,
  <span class="hljs-string">&quot;user&quot;</span>: {
    <span class="hljs-string">&quot;id&quot;</span>: <span class="hljs-number">3</span>,
    <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Alice John&quot;</span>
  }
}
</code></pre>
<p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x6765;&#x67E5;&#x8BE2;&#x6807;&#x9898;&#x5305;&#x542B; <code>relationships</code> &#x5E76;&#x4E14;&#x4F5C;&#x8005;&#x540D;&#x5305;&#x542B; <code>John</code> &#x7684;&#x535A;&#x5BA2;&#xFF0C;&#x67E5;&#x8BE2;&#x7ED3;&#x679C;&#x518D;&#x6309;&#x4F5C;&#x8005;&#x540D;&#x5206;&#x7EC4;&#xFF0C;&#x611F;&#x8C22; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-aggregations-metrics-top-hits-aggregation.html" target="_blank"><code>top_hits</code> aggregation</a> &#x63D0;&#x4F9B;&#x4E86;&#x6309;&#x7167;&#x7528;&#x6237;&#x8FDB;&#x884C;&#x5206;&#x7EC4;&#x7684;&#x529F;&#x80FD;&#xFF1A;</p>
<pre><code class="lang-json">GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;size&quot;</span> : <span class="hljs-number">0</span>,                                                  &lt;1&gt;
  &quot;query&quot;: {                                                   &lt;2&gt;
    &quot;bool&quot;: {
      &quot;must&quot;: [
        { &quot;match&quot;: { &quot;title&quot;:     &quot;relationships&quot; }},
        { &quot;match&quot;: { &quot;user.name&quot;: &quot;John&quot;          }}
      ]
    }
  },
  &quot;aggs&quot;: {
    &quot;users&quot;: {
      &quot;terms&quot;: {
        &quot;field&quot;:   &quot;user.name.raw&quot;,                            &lt;3&gt;
        &quot;order&quot;: { &quot;top_score&quot;: &quot;desc&quot; }                       &lt;4&gt;
      },
      &quot;aggs&quot;: {
        &quot;top_score&quot;: { &quot;max&quot;:      { &quot;script&quot;:  &quot;_score&quot;           }},   &lt;5&gt;
        &quot;blogposts&quot;: { &quot;top_hits&quot;: { &quot;_source&quot;: &quot;title&quot;, &quot;size&quot;: 5 }}    &lt;6&gt;
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x6211;&#x4EEC;&#x611F;&#x5174;&#x8DA3;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x662F;&#x901A;&#x8FC7; <code>blogposts</code> &#x805A;&#x5408;&#x8FD4;&#x56DE;&#x7684;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5C06; <code>size</code> &#x8BBE;&#x7F6E;&#x6210; 0 &#x6765;&#x7981;&#x6B62; <code>hits</code> &#x5E38;&#x89C4;&#x641C;&#x7D22;&#x3002;   </p>
<p> <img src="assets/2.png" alt="img">  <code>query</code> &#x8FD4;&#x56DE;&#x901A;&#x8FC7; <code>relationships</code> &#x67E5;&#x627E;&#x540D;&#x79F0;&#x4E3A; <code>John</code> &#x7684;&#x7528;&#x6237;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x3002;   </p>
<p><img src="assets/3.png" alt="img">  <code>terms</code> &#x805A;&#x5408;&#x4E3A;&#x6BCF;&#x4E00;&#x4E2A; <code>user.name.raw</code> &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x6876;&#x3002;      </p>
<p> <img src="assets/4.png" alt="img"><img src="assets/5.png" alt="img">   <code>top_score</code> &#x805A;&#x5408;&#x5BF9;&#x901A;&#x8FC7; <code>users</code> &#x805A;&#x5408;&#x5F97;&#x5230;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x6876;&#x6309;&#x7167;&#x6587;&#x6863;&#x8BC4;&#x5206;&#x5BF9;&#x8BCD;&#x9879;&#x8FDB;&#x884C;&#x6392;&#x5E8F;&#x3002;   </p>
<p> <img src="assets/6.png" alt="img">  <code>top_hits</code> &#x805A;&#x5408;&#x4EC5;&#x4E3A;&#x6BCF;&#x4E2A;&#x7528;&#x6237;&#x8FD4;&#x56DE;&#x4E94;&#x4E2A;&#x6700;&#x76F8;&#x5173;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x7684; <code>title</code> &#x5B57;&#x6BB5;&#x3002;   </p>
</blockquote>
<p>&#x8FD9;&#x91CC;&#x663E;&#x793A;&#x7B80;&#x77ED;&#x54CD;&#x5E94;&#x7ED3;&#x679C;&#xFF1A;</p>
<pre><code class="lang-json">...
<span class="hljs-string">&quot;hits&quot;</span>: {
  <span class="hljs-string">&quot;total&quot;</span>:     <span class="hljs-number">2</span>,
  <span class="hljs-string">&quot;max_score&quot;</span>: <span class="hljs-number">0</span>,
  <span class="hljs-string">&quot;hits&quot;</span>:      []                                       &lt;<span class="hljs-number">1</span>&gt;
},
<span class="hljs-string">&quot;aggregations&quot;</span>: {
  <span class="hljs-string">&quot;users&quot;</span>: {
     <span class="hljs-string">&quot;buckets&quot;</span>: [
        { 
           <span class="hljs-string">&quot;key&quot;</span>:       <span class="hljs-string">&quot;John Smith&quot;</span>,                   &lt;2&gt;
           &quot;doc_count&quot;: 1,
           &quot;blogposts&quot;: {
              &quot;hits&quot;: {                                 &lt;3&gt;
                 &quot;total&quot;:     1,
                 &quot;max_score&quot;: 0.35258877,
                 &quot;hits&quot;: [
                    {
                       &quot;_index&quot;: &quot;my_index&quot;,
                       &quot;_type&quot;:  &quot;blogpost&quot;,
                       &quot;_id&quot;:    &quot;2&quot;,
                       &quot;_score&quot;: 0.35258877,
                       &quot;_source&quot;: {
                          &quot;title&quot;: &quot;Relationships&quot;
                       }
                    }
                 ]
              }
           },
           &quot;top_score&quot;: {                               &lt;4&gt;
              &quot;value&quot;: 0.3525887727737427
           }
        },
...
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x8BBE;&#x7F6E; <code>size</code> &#x4E3A; 0 &#xFF0C;&#x6240;&#x4EE5; <code>hits</code> &#x6570;&#x7EC4;&#x662F;&#x7A7A;&#x7684;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  &#x5728;&#x9876;&#x5C42;&#x67E5;&#x8BE2;&#x7ED3;&#x679C;&#x4E2D;&#x51FA;&#x73B0;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x90FD;&#x4F1A;&#x6709;&#x4E00;&#x4E2A;&#x5BF9;&#x5E94;&#x7684;&#x6876;&#x3002;  </p>
<p> <img src="assets/3.png" alt="img">   &#x5728;&#x6BCF;&#x4E2A;&#x7528;&#x6237;&#x6876;&#x4E0B;&#x9762;&#x90FD;&#x4F1A;&#x6709;&#x4E00;&#x4E2A; <code>blogposts.hits</code> &#x6570;&#x7EC4;&#x5305;&#x542B;&#x9488;&#x5BF9;&#x8FD9;&#x4E2A;&#x7528;&#x6237;&#x7684;&#x9876;&#x5C42;&#x67E5;&#x8BE2;&#x7ED3;&#x679C;&#x3002;  </p>
<p> <img src="assets/4.png" alt="img">  &#x7528;&#x6237;&#x6876;&#x6309;&#x7167;&#x6BCF;&#x4E2A;&#x7528;&#x6237;&#x6700;&#x76F8;&#x5173;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x8FDB;&#x884C;&#x6392;&#x5E8F;&#x3002;  </p>
</blockquote>
<p>&#x4F7F;&#x7528; <code>top_hits</code> &#x805A;&#x5408;&#x7B49;&#x6548;&#x6267;&#x884C;&#x4E00;&#x4E2A;&#x67E5;&#x8BE2;&#x8FD4;&#x56DE;&#x8FD9;&#x4E9B;&#x7528;&#x6237;&#x7684;&#x540D;&#x5B57;&#x548C;&#x4ED6;&#x4EEC;&#x6700;&#x76F8;&#x5173;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#xFF0C;&#x7136;&#x540E;&#x4E3A;&#x6BCF;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x6267;&#x884C;&#x76F8;&#x540C;&#x7684;&#x67E5;&#x8BE2;&#xFF0C;&#x4EE5;&#x83B7;&#x5F97;&#x6700;&#x597D;&#x7684;&#x535A;&#x5BA2;&#x3002;&#x4F46;&#x524D;&#x8005;&#x7684;&#x6548;&#x7387;&#x8981;&#x597D;&#x5F88;&#x591A;&#x3002;</p>
<p>&#x6BCF;&#x4E00;&#x4E2A;&#x6876;&#x8FD4;&#x56DE;&#x7684;&#x9876;&#x5C42;&#x67E5;&#x8BE2;&#x547D;&#x4E2D;&#x7ED3;&#x679C;&#x662F;&#x57FA;&#x4E8E;&#x6700;&#x521D;&#x4E3B;&#x67E5;&#x8BE2;&#x8FDB;&#x884C;&#x7684;&#x4E00;&#x4E2A;&#x8F7B;&#x91CF; <em>&#x8FF7;&#x4F60;&#x67E5;&#x8BE2;</em> &#x7ED3;&#x679C;&#x96C6;&#x3002;&#x8FD9;&#x4E2A;&#x8FF7;&#x4F60;&#x67E5;&#x8BE2;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E9B;&#x4F60;&#x671F;&#x671B;&#x7684;&#x5E38;&#x7528;&#x7279;&#x6027;&#xFF0C;&#x4F8B;&#x5982;&#x9AD8;&#x4EAE;&#x663E;&#x793A;&#x4EE5;&#x53CA;&#x5206;&#x9875;&#x529F;&#x80FD;&#x3002;</p>
<h3 id="&#x975E;&#x89C4;&#x8303;&#x5316;&#x548C;&#x5E76;&#x53D1;"><a name="&#x975E;&#x89C4;&#x8303;&#x5316;&#x548C;&#x5E76;&#x53D1;" class="anchor-navigation-ex-anchor" href="#&#x975E;&#x89C4;&#x8303;&#x5316;&#x548C;&#x5E76;&#x53D1;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x975E;&#x89C4;&#x8303;&#x5316;&#x548C;&#x5E76;&#x53D1;</h3>
<p>&#x5F53;&#x7136;&#xFF0C;&#x6570;&#x636E;&#x975E;&#x89C4;&#x8303;&#x5316;&#x4E5F;&#x6709;&#x5F0A;&#x7AEF;&#x3002; &#x7B2C;&#x4E00;&#x4E2A;&#x7F3A;&#x70B9;&#x662F;&#x7D22;&#x5F15;&#x4F1A;&#x66F4;&#x5927;&#x56E0;&#x4E3A;&#x6BCF;&#x4E2A;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x6587;&#x6863;&#x7684; <code>_source</code> &#x5C06;&#x4F1A;&#x66F4;&#x5927;&#xFF0C;&#x5E76;&#x4E14;&#x8FD9;&#x91CC;&#x6709;&#x5F88;&#x591A;&#x7684;&#x7D22;&#x5F15;&#x5B57;&#x6BB5;&#x3002;&#x8FD9;&#x901A;&#x5E38;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x5927;&#x95EE;&#x9898;&#x3002;&#x6570;&#x636E;&#x5199;&#x5230;&#x78C1;&#x76D8;&#x5C06;&#x4F1A;&#x88AB;&#x9AD8;&#x5EA6;&#x538B;&#x7F29;&#xFF0C;&#x800C;&#x4E14;&#x78C1;&#x76D8;&#x5DF2;&#x7ECF;&#x5F88;&#x5EC9;&#x4EF7;&#x4E86;&#x3002;Elasticsearch &#x53EF;&#x4EE5;&#x6109;&#x5FEB;&#x5730;&#x5E94;&#x4ED8;&#x8FD9;&#x4E9B;&#x989D;&#x5916;&#x7684;&#x6570;&#x636E;&#x3002;</p>
<p>&#x66F4;&#x91CD;&#x8981;&#x7684;&#x95EE;&#x9898;&#x662F;&#xFF0C;&#x5982;&#x679C;&#x7528;&#x6237;&#x6539;&#x53D8;&#x4E86;&#x4ED6;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x4ED6;&#x6240;&#x6709;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x4E5F;&#x9700;&#x8981;&#x66F4;&#x65B0;&#x4E86;&#x3002;&#x5E78;&#x8FD0;&#x7684;&#x662F;&#xFF0C;&#x7528;&#x6237;&#x4E0D;&#x7ECF;&#x5E38;&#x66F4;&#x6539;&#x540D;&#x79F0;&#x3002;&#x5373;&#x4F7F;&#x4ED6;&#x4EEC;&#x505A;&#x4E86;&#xFF0C; &#x7528;&#x6237;&#x4E5F;&#x4E0D;&#x53EF;&#x80FD;&#x5199;&#x8D85;&#x8FC7;&#x51E0;&#x5343;&#x7BC7;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#xFF0C;&#x6240;&#x4EE5;&#x66F4;&#x65B0;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x901A;&#x8FC7; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/scroll.html" target="_blank"><code>scroll</code></a> &#x548C; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html" target="_blank"><code>bulk</code></a>APIs &#x5927;&#x6982;&#x8017;&#x8D39;&#x4E0D;&#x5230;&#x4E00;&#x79D2;&#x3002;</p>
<p>&#x7136;&#x800C;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x8003;&#x8651;&#x4E00;&#x4E2A;&#x66F4;&#x590D;&#x6742;&#x7684;&#x573A;&#x666F;&#xFF0C;&#x5176;&#x4E2D;&#x7684;&#x53D8;&#x5316;&#x5F88;&#x5E38;&#x89C1;&#xFF0C;&#x5F71;&#x54CD;&#x6DF1;&#x8FDC;&#xFF0C;&#x800C;&#x4E14;&#x975E;&#x5E38;&#x91CD;&#x8981;&#xFF0C;&#x5E76;&#x53D1;&#x3002;</p>
<p>&#x5728;&#x8FD9;&#x4E2A;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x5728; Elasticsearch &#x6A21;&#x62DF;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x76EE;&#x5F55;&#x6811;&#xFF0C;&#x975E;&#x5E38;&#x7C7B;&#x4F3C; Linux &#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#xFF1A;&#x6839;&#x76EE;&#x5F55;&#x662F; <code>/</code> &#xFF0C;&#x6BCF;&#x4E2A;&#x76EE;&#x5F55;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x6587;&#x4EF6;&#x548C;&#x5B50;&#x76EE;&#x5F55;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x80FD;&#x591F;&#x641C;&#x7D22;&#x5230;&#x4E00;&#x4E2A;&#x7279;&#x5B9A;&#x76EE;&#x5F55;&#x4E0B;&#x7684;&#x6587;&#x4EF6;&#xFF0C;&#x7B49;&#x6548;&#x4E8E;&#xFF1A;</p>
<pre><code>grep &quot;some text&quot; /clinton/projects/elasticsearch/*
</code></pre><p>&#x8FD9;&#x5C31;&#x8981;&#x6C42;&#x6211;&#x4EEC;&#x7D22;&#x5F15;&#x6587;&#x4EF6;&#x6240;&#x5728;&#x76EE;&#x5F55;&#x7684;&#x8DEF;&#x5F84;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs/file/<span class="hljs-number">1</span>
{
  <span class="hljs-string">&quot;name&quot;</span>:     <span class="hljs-string">&quot;README.txt&quot;</span>,                                       &lt;1&gt;
  &quot;path&quot;:     &quot;/clinton/projects/elasticsearch&quot;, 
  &quot;contents&quot;: &quot;Starting a new Elasticsearch project is easy...&quot;   &lt;2&gt;
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x6587;&#x4EF6;&#x540D;    </p>
<p> <img src="assets/2.png" alt="img">&#x6587;&#x4EF6;&#x6240;&#x5728;&#x76EE;&#x5F55;&#x7684;&#x5168;&#x8DEF;&#x5F84;  </p>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x4E8B;&#x5B9E;&#x4E0A;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x5E94;&#x5F53;&#x7D22;&#x5F15; <code>directory</code> &#x6587;&#x6863;&#xFF0C;&#x5982;&#x6B64;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x76EE;&#x5F55;&#x5185;&#x5217;&#x51FA;&#x6240;&#x6709;&#x7684;&#x6587;&#x4EF6;&#x548C;&#x5B50;&#x76EE;&#x5F55;&#xFF0C;&#x4F46;&#x4E3A;&#x4E86;&#x7B80;&#x6D01;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x5FFD;&#x7565;&#x8FD9;&#x4E2A;&#x9700;&#x6C42;&#x3002;  </p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x4E5F;&#x5E0C;&#x671B;&#x80FD;&#x591F;&#x641C;&#x7D22;&#x5230;&#x4E00;&#x4E2A;&#x7279;&#x5B9A;&#x76EE;&#x5F55;&#x4E0B;&#x7684;&#x76EE;&#x5F55;&#x6811;&#x5305;&#x542B;&#x7684;&#x7684;&#x4EFB;&#x4F55;&#x6587;&#x4EF6;&#xFF0C;&#x76F8;&#x5F53;&#x4E8E;&#x6B64;&#xFF1A;</p>
<pre><code>grep -r &quot;some text&quot; /clinton
</code></pre><p>&#x4E3A;&#x4E86;&#x652F;&#x6301;&#x8FD9;&#x4E00;&#x70B9;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5BF9;&#x8DEF;&#x5F84;&#x5C42;&#x6B21;&#x7ED3;&#x6784;&#x8FDB;&#x884C;&#x7D22;&#x5F15;&#xFF1A;</p>
<ul>
<li><code>/clinton</code></li>
<li><code>/clinton/projects</code></li>
<li><code>/clinton/projects/elasticsearch</code></li>
</ul>
<p>&#x8FD9;&#x79CD;&#x5C42;&#x6B21;&#x7ED3;&#x6784;&#x80FD;&#x591F;&#x901A;&#x8FC7; <code>path</code> &#x5B57;&#x6BB5;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/analysis-pathhierarchy-tokenizer.html" target="_blank"><code>path_hierarchy</code> tokenizer</a> &#x81EA;&#x52A8;&#x751F;&#x6210;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs
{
  <span class="hljs-string">&quot;settings&quot;</span>: {
    <span class="hljs-string">&quot;analysis&quot;</span>: {
      <span class="hljs-string">&quot;analyzer&quot;</span>: {
        <span class="hljs-string">&quot;paths&quot;</span>: {                          <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
          &quot;tokenizer&quot;: &quot;path_hierarchy&quot;
        }
      }
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x81EA;&#x5B9A;&#x4E49;&#x7684; <code>paths</code> &#x5206;&#x6790;&#x5668;&#x5728;&#x9ED8;&#x8BA4;&#x8BBE;&#x7F6E;&#x4E2D;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/analysis-pathhierarchy-tokenizer.html" target="_blank"><code>path_hierarchy</code> tokenizer</a>&#x3002;   </p>
</blockquote>
<p><code>file</code> &#x7C7B;&#x578B;&#x7684;&#x6620;&#x5C04;&#x770B;&#x8D77;&#x6765;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs/_mapping/file
{
  <span class="hljs-string">&quot;properties&quot;</span>: {
    <span class="hljs-string">&quot;name&quot;</span>: {                         &lt;1&gt;
      &quot;type&quot;:  &quot;string&quot;,
      &quot;index&quot;: &quot;not_analyzed&quot;
    },
    &quot;path&quot;: {                         &lt;2&gt;
      &quot;type&quot;:  &quot;string&quot;,
      &quot;index&quot;: &quot;not_analyzed&quot;,
      &quot;fields&quot;: {
        &quot;tree&quot;: {                     &lt;3&gt;
          &quot;type&quot;:     &quot;string&quot;,
          &quot;analyzer&quot;: &quot;paths&quot;
        }
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>name</code> &#x5B57;&#x6BB5;&#x5C06;&#x5305;&#x542B;&#x786E;&#x5207;&#x540D;&#x79F0;&#x3002;    </p>
<p> <img src="assets/2.png" alt="img"> <img src="assets/3.png" alt="img">  <code>path</code> &#x5B57;&#x6BB5;&#x5C06;&#x5305;&#x542B;&#x786E;&#x5207;&#x7684;&#x76EE;&#x5F55;&#x540D;&#x79F0;&#xFF0C;&#x800C; <code>path.tree</code> &#x5B57;&#x6BB5;&#x5C06;&#x5305;&#x542B;&#x8DEF;&#x5F84;&#x5C42;&#x6B21;&#x7ED3;&#x6784;&#x3002;   </p>
</blockquote>
<p>&#x4E00;&#x65E6;&#x7D22;&#x5F15;&#x5EFA;&#x7ACB;&#x5E76;&#x4E14;&#x6587;&#x4EF6;&#x5DF2;&#x88AB;&#x7F16;&#x5165;&#x7D22;&#x5F15;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x6267;&#x884C;&#x4E00;&#x4E2A;&#x641C;&#x7D22;&#xFF0C;&#x5728; <code>/clinton/projects/elasticsearch</code> &#x76EE;&#x5F55;&#x4E2D;&#x5305;&#x542B; <code>elasticsearch</code> &#x7684;&#x6587;&#x4EF6;&#xFF0C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-json">GET /fs/file/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;filtered&quot;</span>: {
      <span class="hljs-string">&quot;query&quot;</span>: {
        <span class="hljs-string">&quot;match&quot;</span>: {
          <span class="hljs-string">&quot;contents&quot;</span>: <span class="hljs-string">&quot;elasticsearch&quot;</span>
        }
      },
      <span class="hljs-string">&quot;filter&quot;</span>: {
        <span class="hljs-string">&quot;term&quot;</span>: {                                       <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
          &quot;path&quot;: &quot;/clinton/projects/elasticsearch&quot;
        }
      }
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x4EC5;&#x5728;&#x8BE5;&#x76EE;&#x5F55;&#x4E2D;&#x67E5;&#x627E;&#x6587;&#x4EF6;&#x3002;   </p>
</blockquote>
<p>&#x6240;&#x6709;&#x5728; <code>/clinton</code> &#x4E0B;&#x9762;&#x7684;&#x4EFB;&#x4F55;&#x5B50;&#x76EE;&#x5F55;&#x5B58;&#x653E;&#x7684;&#x6587;&#x4EF6;&#x5C06;&#x5728; <code>path.tree</code> &#x5B57;&#x6BB5;&#x4E2D;&#x5305;&#x542B; <code>/clinton</code> &#x8BCD;&#x9879;&#x3002;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x80FD;&#x591F;&#x641C;&#x7D22; <code>/clinton</code> &#x7684;&#x4EFB;&#x4F55;&#x5B50;&#x76EE;&#x5F55;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#xFF0C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-json">GET /fs/file/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;filtered&quot;</span>: {
      <span class="hljs-string">&quot;query&quot;</span>: {
        <span class="hljs-string">&quot;match&quot;</span>: {
          <span class="hljs-string">&quot;contents&quot;</span>: <span class="hljs-string">&quot;elasticsearch&quot;</span>
        }
      },
      <span class="hljs-string">&quot;filter&quot;</span>: {
        <span class="hljs-string">&quot;term&quot;</span>: {                               <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
          &quot;path.tree&quot;: &quot;/clinton&quot;
        }
      }
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x5728;&#x8FD9;&#x4E2A;&#x76EE;&#x5F55;&#x6216;&#x5176;&#x4E0B;&#x4EFB;&#x4F55;&#x5B50;&#x76EE;&#x5F55;&#x4E2D;&#x67E5;&#x627E;&#x6587;&#x4EF6;&#x3002;  </p>
</blockquote>
<p><strong>&#x91CD;&#x547D;&#x540D;&#x6587;&#x4EF6;&#x548C;&#x76EE;&#x5F55;</strong></p>
<p>&#x5230;&#x76EE;&#x524D;&#x4E3A;&#x6B62;&#x4E00;&#x5207;&#x987A;&#x5229;&#x3002; &#x91CD;&#x547D;&#x540D;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;&#x5F88;&#x5BB9;&#x6613;--&#x6240;&#x9700;&#x8981;&#x7684;&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684; <code>update</code> &#x6216; <code>index</code> &#x8BF7;&#x6C42;&#x3002; &#x4F60;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/optimistic-concurrency-control.html" target="_blank">optimistic concurrency control</a> &#x786E;&#x4FDD;&#x4F60;&#x7684;&#x53D8;&#x5316;&#x4E0D;&#x4F1A;&#x4E0E;&#x5176;&#x4ED6;&#x7528;&#x6237;&#x7684;&#x53D8;&#x5316;&#x53D1;&#x751F;&#x51B2;&#x7A81;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs/file/<span class="hljs-number">1</span>?version=<span class="hljs-number">2</span>                                          &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;name&quot;</span>:     <span class="hljs-string">&quot;README.asciidoc&quot;</span>,
  <span class="hljs-string">&quot;path&quot;</span>:     <span class="hljs-string">&quot;/clinton/projects/elasticsearch&quot;</span>,
  <span class="hljs-string">&quot;contents&quot;</span>: <span class="hljs-string">&quot;Starting a new Elasticsearch project is easy...&quot;</span>
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> <code>version</code> &#x7F16;&#x53F7;&#x786E;&#x4FDD;&#x8BE5;&#x66F4;&#x6539;&#x4EC5;&#x5E94;&#x7528;&#x4E8E;&#x8BE5;&#x7D22;&#x5F15;&#x4E2D;&#x5177;&#x6709;&#x6B64;&#x76F8;&#x540C;&#x7684;&#x7248;&#x672C;&#x53F7;&#x7684;&#x6587;&#x6863;&#x3002;     </p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x91CD;&#x547D;&#x540D;&#x4E00;&#x4E2A;&#x76EE;&#x5F55;&#xFF0C;&#x4F46;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x66F4;&#x65B0;&#x6240;&#x6709;&#x5B58;&#x5728;&#x4E8E;&#x8BE5;&#x76EE;&#x5F55;&#x4E0B;&#x8DEF;&#x5F84;&#x5C42;&#x6B21;&#x7ED3;&#x6784;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x3002; &#x8FD9;&#x53EF;&#x80FD;&#x5FEB;&#x901F;&#x6216;&#x7F13;&#x6162;&#xFF0C;&#x53D6;&#x51B3;&#x4E8E;&#x6709;&#x591A;&#x5C11;&#x6587;&#x4EF6;&#x9700;&#x8981;&#x66F4;&#x65B0;&#x3002;&#x6211;&#x4EEC;&#x6240;&#x9700;&#x8981;&#x505A;&#x7684;&#x5C31;&#x662F;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/scroll.html" target="_blank"><code>scroll</code></a> &#x6765;&#x68C0;&#x7D22;&#x6240;&#x6709;&#x7684;&#x6587;&#x4EF6;&#xFF0C; &#x4EE5;&#x53CA; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html" target="_blank"><code>bulk</code> API</a> &#x6765;&#x66F4;&#x65B0;&#x5B83;&#x4EEC;&#x3002;&#x8FD9;&#x4E2A;&#x8FC7;&#x7A0B;&#x4E0D;&#x662F;&#x539F;&#x5B50;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x6240;&#x6709;&#x7684;&#x6587;&#x4EF6;&#x5C06;&#x4F1A;&#x8FC5;&#x901F;&#x8F6C;&#x79FB;&#x5230;&#x4ED6;&#x4EEC;&#x7684;&#x65B0;&#x5B58;&#x653E;&#x4F4D;&#x7F6E;&#x3002;</p>
<h3 id="&#x89E3;&#x51B3;&#x5E76;&#x53D1;&#x95EE;&#x9898;"><a name="&#x89E3;&#x51B3;&#x5E76;&#x53D1;&#x95EE;&#x9898;" class="anchor-navigation-ex-anchor" href="#&#x89E3;&#x51B3;&#x5E76;&#x53D1;&#x95EE;&#x9898;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x89E3;&#x51B3;&#x5E76;&#x53D1;&#x95EE;&#x9898;</h3>
<p>&#x5F53;&#x6211;&#x4EEC;&#x5141;&#x8BB8;&#x591A;&#x4E2A;&#x4EBA; <em>&#x540C;&#x65F6;</em> &#x91CD;&#x547D;&#x540D;&#x6587;&#x4EF6;&#x6216;&#x76EE;&#x5F55;&#x65F6;&#xFF0C;&#x95EE;&#x9898;&#x5C31;&#x6765;&#x4E86;&#x3002; &#x8BBE;&#x60F3;&#x4E00;&#x4E0B;&#xFF0C;&#x4F60;&#x6B63;&#x5728;&#x5BF9;&#x4E00;&#x4E2A;&#x5305;&#x542B;&#x4E86;&#x6210;&#x767E;&#x4E0A;&#x5343;&#x6587;&#x4EF6;&#x7684;&#x76EE;&#x5F55; <code>/clinton</code> &#x8FDB;&#x884C;&#x91CD;&#x547D;&#x540D;&#x64CD;&#x4F5C;&#x3002; &#x540C;&#x65F6;&#xFF0C;&#x53E6;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x5BF9;&#x8FD9;&#x4E2A;&#x76EE;&#x5F55;&#x4E0B;&#x7684;&#x5355;&#x4E2A;&#x6587;&#x4EF6; <code>/clinton/projects/elasticsearch/README.txt</code> &#x8FDB;&#x884C;&#x91CD;&#x547D;&#x540D;&#x64CD;&#x4F5C;&#x3002; &#x8FD9;&#x4E2A;&#x7528;&#x6237;&#x7684;&#x4FEE;&#x6539;&#x64CD;&#x4F5C;&#xFF0C;&#x5C3D;&#x7BA1;&#x5728;&#x4F60;&#x7684;&#x64CD;&#x4F5C;&#x540E;&#x5F00;&#x59CB;&#xFF0C;&#x4F46;&#x53EF;&#x80FD;&#x4F1A;&#x66F4;&#x5FEB;&#x7684;&#x5B8C;&#x6210;&#x3002;</p>
<p>&#x4EE5;&#x4E0B;&#x6709;&#x4E24;&#x79CD;&#x60C5;&#x51B5;&#x53EF;&#x80FD;&#x51FA;&#x73B0;&#xFF1A;</p>
<ul>
<li>&#x4F60;&#x51B3;&#x5B9A;&#x4F7F;&#x7528; <code>version</code> &#xFF08;&#x7248;&#x672C;&#xFF09;&#x53F7;&#xFF0C;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5F53;&#x4E0E; <code>README.txt</code> &#x6587;&#x4EF6;&#x91CD;&#x547D;&#x540D;&#x7684;&#x7248;&#x672C;&#x53F7;&#x4EA7;&#x751F;&#x51B2;&#x7A81;&#x65F6;&#xFF0C;&#x4F60;&#x7684;&#x6279;&#x91CF;&#x91CD;&#x547D;&#x540D;&#x64CD;&#x4F5C;&#x5C06;&#x4F1A;&#x5931;&#x8D25;&#x3002;</li>
<li>&#x4F60;&#x6CA1;&#x6709;&#x4F7F;&#x7528;&#x7248;&#x672C;&#x63A7;&#x5236;&#xFF0C;&#x4F60;&#x7684;&#x53D8;&#x66F4;&#x5C06;&#x8986;&#x76D6;&#x5176;&#x4ED6;&#x7528;&#x6237;&#x7684;&#x53D8;&#x66F4;&#x3002;</li>
</ul>
<p>&#x95EE;&#x9898;&#x7684;&#x539F;&#x56E0;&#x662F; Elasticsearch &#x4E0D;&#x652F;&#x6301; <a href="http://en.wikipedia.org/wiki/ACID_transactions" target="_blank">ACID &#x4E8B;&#x52A1;</a>&#x3002; &#x5BF9;&#x5355;&#x4E2A;&#x6587;&#x4EF6;&#x7684;&#x53D8;&#x66F4;&#x662F; ACIDic &#x7684;&#xFF0C;&#x4F46;&#x5305;&#x542B;&#x591A;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x53D8;&#x66F4;&#x4E0D;&#x652F;&#x6301;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x7684;&#x4E3B;&#x8981;&#x6570;&#x636E;&#x5B58;&#x50A8;&#x662F;&#x5173;&#x7CFB;&#x6570;&#x636E;&#x5E93;&#xFF0C;&#x5E76;&#x4E14; Elasticsearch &#x4EC5;&#x4EC5;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x641C;&#x7D22;&#x5F15;&#x64CE; &#x6216;&#x4E00;&#x79CD;&#x63D0;&#x5347;&#x6027;&#x80FD;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x53EF;&#x4EE5;&#x9996;&#x5148;&#x5728;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x6267;&#x884C;&#x53D8;&#x66F4;&#x52A8;&#x4F5C;&#xFF0C;&#x7136;&#x540E;&#x5728;&#x5B8C;&#x6210;&#x540E;&#x5C06;&#x8FD9;&#x4E9B;&#x53D8;&#x66F4;&#x590D;&#x5236;&#x5230; Elasticsearch&#x3002; &#x901A;&#x8FC7;&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#xFF0C;&#x4F60;&#x5C06;&#x53D7;&#x76CA;&#x4E8E;&#x6570;&#x636E;&#x5E93; ACID &#x4E8B;&#x52A1;&#x652F;&#x6301;&#xFF0C;&#x5E76;&#x4E14;&#x5728; Elasticsearch &#x4E2D;&#x4EE5;&#x6B63;&#x786E;&#x7684;&#x987A;&#x5E8F;&#x4EA7;&#x751F;&#x53D8;&#x66F4;&#x3002; &#x5E76;&#x53D1;&#x5728;&#x5173;&#x7CFB;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x5F97;&#x5230;&#x4E86;&#x5904;&#x7406;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x4E0D;&#x4F7F;&#x7528;&#x5173;&#x7CFB;&#x578B;&#x5B58;&#x50A8;&#xFF0C;&#x8FD9;&#x4E9B;&#x5E76;&#x53D1;&#x95EE;&#x9898;&#x5C31;&#x9700;&#x8981;&#x5728; Elasticsearch &#x7684;&#x4E8B;&#x52A1;&#x6C34;&#x51C6;&#x8FDB;&#x884C;&#x5904;&#x7406;&#x3002; &#x4EE5;&#x4E0B;&#x662F;&#x4E09;&#x4E2A;&#x5207;&#x5B9E;&#x53EF;&#x884C;&#x7684;&#x4F7F;&#x7528; Elasticsearch &#x7684;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#xFF0C;&#x5B83;&#x4EEC;&#x90FD;&#x6D89;&#x53CA;&#x67D0;&#x79CD;&#x5F62;&#x5F0F;&#x7684;&#x9501;&#xFF1A;</p>
<ul>
<li>&#x5168;&#x5C40;&#x9501;</li>
<li>&#x6587;&#x6863;&#x9501;</li>
<li>&#x6811;&#x9501;</li>
</ul>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">&#x5F53;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x5916;&#x90E8;&#x7CFB;&#x7EDF;&#x66FF;&#x4EE3; Elasticsearch &#x65F6;&#xFF0C;&#x672C;&#x8282;&#x4E2D;&#x6240;&#x63CF;&#x8FF0;&#x7684;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x76F8;&#x540C;&#x7684;&#x539F;&#x5219;&#x6765;&#x5B9E;&#x73B0;&#x3002;  </p>
</blockquote>
<p><strong>&#x5168;&#x5C40;&#x9501;</strong></p>
<p>&#x901A;&#x8FC7;&#x5728;&#x4EFB;&#x4F55;&#x65F6;&#x95F4;&#x53EA;&#x5141;&#x8BB8;&#x4E00;&#x4E2A;&#x8FDB;&#x7A0B;&#x6765;&#x8FDB;&#x884C;&#x53D8;&#x66F4;&#x52A8;&#x4F5C;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5B8C;&#x5168;&#x907F;&#x514D;&#x5E76;&#x53D1;&#x95EE;&#x9898;&#x3002; &#x5927;&#x591A;&#x6570;&#x7684;&#x53D8;&#x66F4;&#x53EA;&#x6D89;&#x53CA;&#x5C11;&#x91CF;&#x6587;&#x4EF6;&#xFF0C;&#x4F1A;&#x5F88;&#x5FEB;&#x5B8C;&#x6210;&#x3002;&#x4E00;&#x4E2A;&#x9876;&#x7EA7;&#x76EE;&#x5F55;&#x7684;&#x91CD;&#x547D;&#x540D;&#x64CD;&#x4F5C;&#x4F1A;&#x5BF9;&#x5176;&#x4ED6;&#x53D8;&#x66F4;&#x9020;&#x6210;&#x8F83;&#x957F;&#x65F6;&#x95F4;&#x7684;&#x963B;&#x585E;&#xFF0C;&#x4F46;&#x53EF;&#x80FD;&#x5F88;&#x5C11;&#x8FD9;&#x6837;&#x505A;&#x3002;</p>
<p>&#x56E0;&#x4E3A;&#x5728; Elasticsearch &#x6587;&#x6863;&#x7EA7;&#x522B;&#x7684;&#x53D8;&#x66F4;&#x652F;&#x6301; ACIDic&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;&#x7684;&#x72B6;&#x6001;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x5168;&#x5C40;&#x9501;&#x3002; &#x4E3A;&#x4E86;&#x8BF7;&#x6C42;&#x5F97;&#x5230;&#x9501;&#xFF0C;&#x6211;&#x4EEC;&#x5C1D;&#x8BD5; <code>create</code> &#x5168;&#x5C40;&#x9501;&#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs/lock/global/_create
{}
</code></pre>
<p>&#x5982;&#x679C;&#x8FD9;&#x4E2A; <code>create</code> &#x8BF7;&#x6C42;&#x56E0;&#x51B2;&#x7A81;&#x5F02;&#x5E38;&#x800C;&#x5931;&#x8D25;&#xFF0C;&#x8BF4;&#x660E;&#x53E6;&#x4E00;&#x4E2A;&#x8FDB;&#x7A0B;&#x5DF2;&#x88AB;&#x6388;&#x4E88;&#x5168;&#x5C40;&#x9501;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4E0D;&#x5F97;&#x4E0D;&#x7A0D;&#x540E;&#x518D;&#x8BD5;&#x3002; &#x5982;&#x679C;&#x8BF7;&#x6C42;&#x6210;&#x529F;&#x4E86;&#xFF0C;&#x6211;&#x4EEC;&#x81EA;&#x8C6A;&#x7684;&#x6210;&#x4E3A;&#x5168;&#x5C40;&#x9501;&#x7684;&#x4E3B;&#x4EBA;&#xFF0C;&#x7136;&#x540E;&#x53EF;&#x4EE5;&#x7EE7;&#x7EED;&#x5B8C;&#x6210;&#x6211;&#x4EEC;&#x7684;&#x53D8;&#x66F4;&#x3002;&#x4E00;&#x65E6;&#x5B8C;&#x6210;&#xFF0C;&#x6211;&#x4EEC;&#x5C31;&#x5FC5;&#x987B;&#x901A;&#x8FC7;&#x5220;&#x9664;&#x5168;&#x5C40;&#x9501;&#x6587;&#x6863;&#x6765;&#x91CA;&#x653E;&#x9501;&#xFF1A;</p>
<pre><code class="lang-json">DELETE /fs/lock/global
</code></pre>
<p>&#x6839;&#x636E;&#x53D8;&#x66F4;&#x7684;&#x9891;&#x7E41;&#x7A0B;&#x5EA6;&#x4EE5;&#x53CA;&#x65F6;&#x95F4;&#x6D88;&#x8017;&#xFF0C;&#x4E00;&#x4E2A;&#x5168;&#x5C40;&#x9501;&#x80FD;&#x5BF9;&#x7CFB;&#x7EDF;&#x9020;&#x6210;&#x5927;&#x5E45;&#x5EA6;&#x7684;&#x6027;&#x80FD;&#x9650;&#x5236;&#x3002; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x8BA9;&#x6211;&#x4EEC;&#x7684;&#x9501;&#x66F4;&#x7EC6;&#x7C92;&#x5EA6;&#x7684;&#x65B9;&#x5F0F;&#x6765;&#x589E;&#x52A0;&#x5E76;&#x884C;&#x5EA6;&#x3002;</p>
<p><strong>&#x6587;&#x6863;&#x9501;</strong></p>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x524D;&#x9762;&#x63CF;&#x8FF0;&#x76F8;&#x540C;&#x7684;&#x65B9;&#x6CD5;&#x6280;&#x672F;&#x6765;&#x9501;&#x5B9A;&#x4E2A;&#x4F53;&#x6587;&#x6863;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x9501;&#x5B9A;&#x6574;&#x4E2A;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x3002; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/scroll.html" target="_blank">scrolled search</a> &#x68C0;&#x7D22;&#x6240;&#x6709;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x8FD9;&#x4E9B;&#x6587;&#x6863;&#x4F1A;&#x88AB;&#x53D8;&#x66F4;&#x5F71;&#x54CD;&#x56E0;&#x6B64;&#x6BCF;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x521B;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;&#x9501;&#x6587;&#x4EF6;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs/lock/_bulk
{ <span class="hljs-string">&quot;create&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-number">1</span>}}     &lt;<span class="hljs-number">1</span>&gt;
{ <span class="hljs-string">&quot;process_id&quot;</span>: <span class="hljs-number">123</span>    }     &lt;<span class="hljs-number">2</span>&gt;
{ <span class="hljs-string">&quot;create&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-number">2</span>}}
{ <span class="hljs-string">&quot;process_id&quot;</span>: <span class="hljs-number">123</span>    }
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>lock</code> &#x6587;&#x6863;&#x7684; ID &#x5C06;&#x4E0E;&#x5E94;&#x88AB;&#x9501;&#x5B9A;&#x7684;&#x6587;&#x4EF6;&#x7684; ID &#x76F8;&#x540C;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">   <code>process_id</code> &#x4EE3;&#x8868;&#x8981;&#x6267;&#x884C;&#x53D8;&#x66F4;&#x8FDB;&#x7A0B;&#x7684;&#x552F;&#x4E00; ID&#x3002;    </p>
</blockquote>
<p>&#x5982;&#x679C;&#x4E00;&#x4E9B;&#x6587;&#x4EF6;&#x5DF2;&#x88AB;&#x9501;&#x5B9A;&#xFF0C;&#x90E8;&#x5206;&#x7684; <code>bulk</code> &#x8BF7;&#x6C42;&#x5C06;&#x5931;&#x8D25;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4E0D;&#x5F97;&#x4E0D;&#x518D;&#x6B21;&#x5C1D;&#x8BD5;&#x3002;</p>
<p>&#x5F53;&#x7136;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x8BD5;&#x56FE;&#x518D;&#x6B21;&#x9501;&#x5B9A; <em>&#x6240;&#x6709;</em> &#x7684;&#x6587;&#x4EF6;&#xFF0C; &#x6211;&#x4EEC;&#x524D;&#x9762;&#x4F7F;&#x7528;&#x7684; <code>create</code> &#x8BED;&#x53E5;&#x5C06;&#x4F1A;&#x5931;&#x8D25;&#xFF0C;&#x56E0;&#x4E3A;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x90FD;&#x5DF2;&#x88AB;&#x6211;&#x4EEC;&#x9501;&#x5B9A;&#xFF01; &#x6211;&#x4EEC;&#x9700;&#x8981;&#x4E00;&#x4E2A; <code>update</code> &#x8BF7;&#x6C42;&#x5E26; <code>upsert</code> &#x53C2;&#x6570;&#x4EE5;&#x53CA;&#x4E0B;&#x9762;&#x8FD9;&#x4E2A; <code>script</code> &#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684; <code>create</code>&#x8BED;&#x53E5;&#xFF1A;</p>
<pre><code class="lang-groovy"><span class="hljs-keyword">if</span> ( ctx._source.process_id != process_id ) {    &lt;<span class="hljs-number">1</span>&gt;
  <span class="hljs-keyword">assert</span> <span class="hljs-literal">false</span>;                                  &lt;<span class="hljs-number">2</span>&gt;
}
ctx.op = <span class="hljs-string">&apos;noop&apos;</span>;                                 &lt;<span class="hljs-number">3</span>&gt;
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>process_id</code> &#x662F;&#x4F20;&#x9012;&#x5230;&#x811A;&#x672C;&#x7684;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  <code>assert false</code> &#x5C06;&#x5F15;&#x53D1;&#x5F02;&#x5E38;&#xFF0C;&#x5BFC;&#x81F4;&#x66F4;&#x65B0;&#x5931;&#x8D25;&#x3002;  </p>
<p> <img src="assets/3.png" alt="img">   &#x5C06; <code>op</code> &#x4ECE; <code>update</code> &#x66F4;&#x65B0;&#x5230; <code>noop</code> &#x9632;&#x6B62;&#x66F4;&#x65B0;&#x8BF7;&#x6C42;&#x4F5C;&#x51FA;&#x4EFB;&#x4F55;&#x6539;&#x53D8;&#xFF0C;&#x4F46;&#x4ECD;&#x8FD4;&#x56DE;&#x6210;&#x529F;&#x3002;  </p>
</blockquote>
<p>&#x5B8C;&#x6574;&#x7684; <code>update</code> &#x8BF7;&#x6C42;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-json">POST /fs/lock/1/_update
{
  &quot;upsert&quot;: { &quot;process_id&quot;: 123 },
  &quot;script&quot;: &quot;if ( ctx._source.process_id != process_id )
  { assert false }; ctx.op = &apos;noop&apos;;&quot;
  &quot;params&quot;: {
    &quot;process_id&quot;: 123
  }
}
</code></pre>
<p>&#x5982;&#x679C;&#x6587;&#x6863;&#x5E76;&#x4E0D;&#x5B58;&#x5728;&#xFF0C; <code>upsert</code> &#x6587;&#x6863;&#x5C06;&#x4F1A;&#x88AB;&#x63D2;&#x5165;--&#x548C;&#x524D;&#x9762; <code>create</code> &#x8BF7;&#x6C42;&#x76F8;&#x540C;&#x3002; &#x4F46;&#x662F;&#xFF0C;&#x5982;&#x679C;&#x8BE5;&#x6587;&#x4EF6; <em>&#x786E;&#x5B9E;</em> &#x5B58;&#x5728;&#xFF0C;&#x8BE5;&#x811A;&#x672C;&#x4F1A;&#x67E5;&#x770B;&#x5B58;&#x50A8;&#x5728;&#x6587;&#x6863;&#x4E0A;&#x7684; <code>process_id</code> &#x3002; &#x5982;&#x679C; <code>process_id</code> &#x5339;&#x914D;&#xFF0C;&#x66F4;&#x65B0;&#x4E0D;&#x4F1A;&#x6267;&#x884C;&#xFF08; <code>noop</code> &#xFF09;&#x4F46;&#x811A;&#x672C;&#x4F1A;&#x8FD4;&#x56DE;&#x6210;&#x529F;&#x3002; &#x5982;&#x679C;&#x4E24;&#x8005;&#x5E76;&#x4E0D;&#x5339;&#x914D;&#xFF0C; <code>assert false</code> &#x629B;&#x51FA;&#x4E00;&#x4E2A;&#x5F02;&#x5E38;&#xFF0C;&#x4F60;&#x4E5F;&#x77E5;&#x9053;&#x4E86;&#x83B7;&#x53D6;&#x9501;&#x7684;&#x5C1D;&#x8BD5;&#x5DF2;&#x7ECF;&#x5931;&#x8D25;&#x3002;</p>
<p>&#x4E00;&#x65E6;&#x6240;&#x6709;&#x9501;&#x5DF2;&#x6210;&#x529F;&#x521B;&#x5EFA;&#xFF0C;&#x4F60;&#x5C31;&#x53EF;&#x4EE5;&#x7EE7;&#x7EED;&#x8FDB;&#x884C;&#x4F60;&#x7684;&#x53D8;&#x66F4;&#x3002;</p>
<p>&#x4E4B;&#x540E;&#xFF0C;&#x4F60;&#x5FC5;&#x987B;&#x91CA;&#x653E;&#x6240;&#x6709;&#x7684;&#x9501;&#xFF0C;&#x901A;&#x8FC7;&#x68C0;&#x7D22;&#x6240;&#x6709;&#x7684;&#x9501;&#x6587;&#x6863;&#x5E76;&#x8FDB;&#x884C;&#x6279;&#x91CF;&#x5220;&#x9664;&#xFF0C;&#x53EF;&#x4EE5;&#x5B8C;&#x6210;&#x9501;&#x7684;&#x91CA;&#x653E;&#xFF1A;</p>
<pre><code class="lang-json">POST /fs/_refresh                     &lt;<span class="hljs-number">1</span>&gt;

GET /fs/lock/_search?scroll=<span class="hljs-number">1</span>m        &lt;<span class="hljs-number">2</span>&gt; 
{
    <span class="hljs-string">&quot;sort&quot;</span> : [<span class="hljs-string">&quot;_doc&quot;</span>],
    <span class="hljs-string">&quot;query&quot;</span>: {
        <span class="hljs-string">&quot;match&quot;</span> : {
            <span class="hljs-string">&quot;process_id&quot;</span> : <span class="hljs-number">123</span>
        }
    }
}

PUT /fs/lock/_bulk
{ <span class="hljs-string">&quot;delete&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-number">1</span>}}
{ <span class="hljs-string">&quot;delete&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-number">2</span>}}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>refresh</code> &#x8C03;&#x7528;&#x786E;&#x4FDD;&#x6240;&#x6709; <code>lock</code> &#x6587;&#x6863;&#x5BF9;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x53EF;&#x89C1;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  &#x5F53;&#x4F60;&#x9700;&#x8981;&#x5728;&#x5355;&#x6B21;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x8FD4;&#x56DE;&#x5927;&#x91CF;&#x7684;&#x68C0;&#x7D22;&#x7ED3;&#x679C;&#x96C6;&#x65F6;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/scroll.html" target="_blank"><code>scroll</code></a> &#x67E5;&#x8BE2;&#x3002;  </p>
</blockquote>
<p>&#x6587;&#x6863;&#x7EA7;&#x9501;&#x53EF;&#x4EE5;&#x5B9E;&#x73B0;&#x7EC6;&#x7C92;&#x5EA6;&#x7684;&#x8BBF;&#x95EE;&#x63A7;&#x5236;&#xFF0C;&#x4F46;&#x662F;&#x4E3A;&#x6570;&#x767E;&#x4E07;&#x6587;&#x6863;&#x521B;&#x5EFA;&#x9501;&#x6587;&#x4EF6;&#x5F00;&#x9500;&#x4E5F;&#x5F88;&#x5927;&#x3002; &#x5728;&#x67D0;&#x4E9B;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x7528;&#x5C11;&#x5F97;&#x591A;&#x7684;&#x5DE5;&#x4F5C;&#x91CF;&#x5B9E;&#x73B0;&#x7EC6;&#x7C92;&#x5EA6;&#x7684;&#x9501;&#x5B9A;&#xFF0C;&#x5982;&#x4EE5;&#x4E0B;&#x76EE;&#x5F55;&#x6811;&#x573A;&#x666F;&#x4E2D;&#x6240;&#x793A;&#x3002;</p>
<p><strong>&#x6811;&#x9501;</strong></p>
<p>&#x5728;&#x524D;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x9501;&#x5B9A;&#x7684;&#x76EE;&#x5F55;&#x6811;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x9501;&#x5B9A;&#x6BCF;&#x4E00;&#x4E2A;&#x6D89;&#x53CA;&#x7684;&#x6587;&#x6863;&#x3002; &#x6211;&#x4EEC;&#x5C06;&#x9700;&#x8981;&#x72EC;&#x5360;&#x8BBF;&#x95EE;&#x6211;&#x4EEC;&#x8981;&#x91CD;&#x547D;&#x540D;&#x7684;&#x6587;&#x4EF6;&#x6216;&#x76EE;&#x5F55;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; <em>&#x72EC;&#x5360;&#x9501;</em> &#x6587;&#x6863;&#x6765;&#x5B9E;&#x73B0;&#xFF1A;</p>
<pre><code class="lang-json">{ <span class="hljs-string">&quot;lock_type&quot;</span>: <span class="hljs-string">&quot;exclusive&quot;</span> }
</code></pre>
<p>&#x540C;&#x65F6;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5171;&#x4EAB;&#x9501;&#x5B9A;&#x6240;&#x6709;&#x7684;&#x7236;&#x76EE;&#x5F55;&#xFF0C;&#x901A;&#x8FC7; <em>&#x5171;&#x4EAB;&#x9501;</em> &#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-json">{
  <span class="hljs-string">&quot;lock_type&quot;</span>:  <span class="hljs-string">&quot;shared&quot;</span>,
  <span class="hljs-string">&quot;lock_count&quot;</span>: <span class="hljs-number">1</span>                &lt;<span class="hljs-number">1</span>&gt;
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>lock_count</code> &#x8BB0;&#x5F55;&#x6301;&#x6709;&#x5171;&#x4EAB;&#x9501;&#x8FDB;&#x7A0B;&#x7684;&#x6570;&#x91CF;&#x3002;   </p>
</blockquote>
<p>&#x5BF9; <code>/clinton/projects/elasticsearch/README.txt</code> &#x8FDB;&#x884C;&#x91CD;&#x547D;&#x540D;&#x7684;&#x8FDB;&#x7A0B;&#x9700;&#x8981;&#x5728;&#x8FD9;&#x4E2A;&#x6587;&#x4EF6;&#x4E0A;&#x6709; <em>&#x72EC;&#x5360;&#x9501;</em> &#xFF0C; &#x4EE5;&#x53CA;&#x5728; <code>/clinton</code> &#x3001; <code>/clinton/projects</code> &#x548C; <code>/clinton/projects/elasticsearch</code> &#x76EE;&#x5F55;&#x6709; <em>&#x5171;&#x4EAB;&#x9501;</em> &#x3002;</p>
<p>&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684; <code>create</code> &#x8BF7;&#x6C42;&#x5C06;&#x6EE1;&#x8DB3;&#x72EC;&#x5360;&#x9501;&#x7684;&#x8981;&#x6C42;&#xFF0C;&#x4F46;&#x5171;&#x4EAB;&#x9501;&#x9700;&#x8981;&#x811A;&#x672C;&#x7684;&#x66F4;&#x65B0;&#x6765;&#x5B9E;&#x73B0;&#x4E00;&#x4E9B;&#x989D;&#x5916;&#x7684;&#x903B;&#x8F91;&#xFF1A;</p>
<pre><code class="lang-groovy"><span class="hljs-keyword">if</span> (ctx._source.lock_type == <span class="hljs-string">&apos;exclusive&apos;</span>) {
  <span class="hljs-keyword">assert</span> <span class="hljs-literal">false</span>;                                  &lt;<span class="hljs-number">1</span>&gt;
}
ctx._source.lock_count++                         &lt;<span class="hljs-number">2</span>&gt;
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x5982;&#x679C; <code>lock_type</code> &#x662F; <code>exclusive</code> &#xFF08;&#x72EC;&#x5360;&#xFF09;&#x7684;&#xFF0C;<code>assert</code> &#x8BED;&#x53E5;&#x5C06;&#x629B;&#x51FA;&#x4E00;&#x4E2A;&#x5F02;&#x5E38;&#xFF0C;&#x5BFC;&#x81F4;&#x66F4;&#x65B0;&#x8BF7;&#x6C42;&#x5931;&#x8D25;&#x3002;   </p>
<p> <img src="assets/2.png" alt="img">   &#x5426;&#x5219;&#xFF0C;&#x6211;&#x4EEC;&#x5BF9; <code>lock_count</code> &#x8FDB;&#x884C;&#x589E;&#x91CF;&#x5904;&#x7406;&#x3002;  </p>
</blockquote>
<p>&#x8FD9;&#x4E2A;&#x811A;&#x672C;&#x5904;&#x7406;&#x4E86; <code>lock</code> &#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#x7684;&#x60C5;&#x51B5;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x8FD8;&#x9700;&#x8981;&#x4E00;&#x4E2A;&#x7528;&#x6765;&#x5904;&#x7406;&#x7684;&#x6587;&#x6863;&#x8FD8;&#x4E0D;&#x5B58;&#x5728;&#x60C5;&#x51B5;&#x7684; <code>upsert</code> &#x6587;&#x6863;&#x3002; &#x5B8C;&#x6574;&#x7684;&#x66F4;&#x65B0;&#x8BF7;&#x6C42;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="lang-json">POST /fs/lock/%<span class="hljs-number">2</span>Fclinton/_update                            &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;upsert&quot;</span>: {                                               <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">2</span>&gt;</span>
    &quot;lock_type&quot;:  &quot;shared&quot;,
    &quot;lock_count&quot;: 1
  },
  &quot;script&quot;: &quot;if (ctx._source.lock_type == &apos;exclusive&apos;)
  { assert false }; ctx._source.lock_count++&quot;
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x6587;&#x6863;&#x7684; ID &#x662F; <code>/clinton</code> &#xFF0C;&#x7ECF;&#x8FC7;URL&#x7F16;&#x7801;&#x540E;&#x6210;&#x4E3A; <code>%2fclinton</code> &#x3002;   </p>
<p> <img src="assets/2.png" alt="img">  <code>upsert</code> &#x6587;&#x6863;&#x5982;&#x679C;&#x4E0D;&#x5B58;&#x5728;&#xFF0C;&#x5219;&#x4F1A;&#x88AB;&#x63D2;&#x5165;&#x3002;   </p>
</blockquote>
<p>&#x4E00;&#x65E6;&#x6211;&#x4EEC;&#x6210;&#x529F;&#x5730;&#x5728;&#x6240;&#x6709;&#x7684;&#x7236;&#x76EE;&#x5F55;&#x4E2D;&#x83B7;&#x5F97;&#x4E00;&#x4E2A;&#x5171;&#x4EAB;&#x9501;&#xFF0C;&#x6211;&#x4EEC;&#x5C1D;&#x8BD5;&#x5728;&#x6587;&#x4EF6;&#x672C;&#x8EAB; <code>create</code> &#x4E00;&#x4E2A;&#x72EC;&#x5360;&#x9501;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs/lock/%<span class="hljs-number">2</span>Fclinton%<span class="hljs-number">2</span>fprojects%<span class="hljs-number">2</span>felasticsearch%<span class="hljs-number">2</span>fREADME.txt/_create
{ <span class="hljs-string">&quot;lock_type&quot;</span>: <span class="hljs-string">&quot;exclusive&quot;</span> }
</code></pre>
<p>&#x73B0;&#x5728;&#xFF0C;&#x5982;&#x679C;&#x6709;&#x5176;&#x4ED6;&#x4EBA;&#x60F3;&#x8981;&#x91CD;&#x65B0;&#x547D;&#x540D; <code>/clinton</code> &#x76EE;&#x5F55;&#xFF0C;&#x4ED6;&#x4EEC;&#x5C06;&#x4E0D;&#x5F97;&#x4E0D;&#x5728;&#x8FD9;&#x6761;&#x8DEF;&#x5F84;&#x4E0A;&#x83B7;&#x5F97;&#x4E00;&#x4E2A;&#x72EC;&#x5360;&#x9501;&#xFF1A;</p>
<pre><code class="lang-json">PUT /fs/lock/%<span class="hljs-number">2</span>Fclinton/_create
{ <span class="hljs-string">&quot;lock_type&quot;</span>: <span class="hljs-string">&quot;exclusive&quot;</span> }
</code></pre>
<p>&#x8FD9;&#x4E2A;&#x8BF7;&#x6C42;&#x5C06;&#x5931;&#x8D25;&#xFF0C;&#x56E0;&#x4E3A;&#x4E00;&#x4E2A;&#x5177;&#x6709;&#x76F8;&#x540C; ID &#x7684; <code>lock</code> &#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#x3002; &#x53E6;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x5C06;&#x4E0D;&#x5F97;&#x4E0D;&#x7B49;&#x5F85;&#x6211;&#x4EEC;&#x7684;&#x64CD;&#x4F5C;&#x5B8C;&#x6210;&#x4EE5;&#x53CA;&#x91CA;&#x653E;&#x6211;&#x4EEC;&#x7684;&#x9501;&#x3002;&#x72EC;&#x5360;&#x9501;&#x53EA;&#x80FD;&#x8FD9;&#x6837;&#x88AB;&#x5220;&#x9664;&#xFF1A;</p>
<pre><code class="lang-json">DELETE /fs/lock/%<span class="hljs-number">2</span>Fclinton%<span class="hljs-number">2</span>fprojects%<span class="hljs-number">2</span>felasticsearch%<span class="hljs-number">2</span>fREADME.txt
</code></pre>
<p>&#x5171;&#x4EAB;&#x9501;&#x9700;&#x8981;&#x53E6;&#x4E00;&#x4E2A;&#x811A;&#x672C;&#x5BF9; <code>lock_count</code> &#x9012;&#x51CF;&#xFF0C;&#x5982;&#x679C;&#x8BA1;&#x6570;&#x4E0B;&#x964D;&#x5230;&#x96F6;&#xFF0C;&#x5220;&#x9664; <code>lock</code> &#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-groovy"><span class="hljs-keyword">if</span> (--ctx._source.lock_count == <span class="hljs-number">0</span>) {
  ctx.op = <span class="hljs-string">&apos;delete&apos;</span>                           &lt;<span class="hljs-number">1</span>&gt;
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x4E00;&#x65E6; <code>lock_count</code> &#x8FBE;&#x5230;0&#xFF0C; <code>ctx.op</code> &#x4F1A;&#x4ECE; <code>update</code> &#x88AB;&#x4FEE;&#x6539;&#x6210; <code>delete</code> &#x3002;   </p>
</blockquote>
<p>&#x6B64;&#x66F4;&#x65B0;&#x8BF7;&#x6C42;&#x5C06;&#x4E3A;&#x6BCF;&#x7EA7;&#x7236;&#x76EE;&#x5F55;&#x7531;&#x4E0B;&#x81F3;&#x4E0A;&#x7684;&#x6267;&#x884C;&#xFF0C;&#x4ECE;&#x6700;&#x957F;&#x8DEF;&#x5F84;&#x5230;&#x6700;&#x77ED;&#x8DEF;&#x5F84;&#xFF1A;</p>
<pre><code class="lang-json">POST /fs/lock/%<span class="hljs-number">2</span>Fclinton%<span class="hljs-number">2</span>fprojects%<span class="hljs-number">2</span>felasticsearch/_update
{
  <span class="hljs-string">&quot;script&quot;</span>: <span class="hljs-string">&quot;if (--ctx._source.lock_count == 0) { ctx.op = &apos;delete&apos; } &quot;</span>
}
</code></pre>
<p>&#x6811;&#x9501;&#x7528;&#x6700;&#x5C0F;&#x7684;&#x4EE3;&#x4EF7;&#x63D0;&#x4F9B;&#x4E86;&#x7EC6;&#x7C92;&#x5EA6;&#x7684;&#x5E76;&#x53D1;&#x63A7;&#x5236;&#x3002;&#x5F53;&#x7136;&#xFF0C;&#x5B83;&#x4E0D;&#x9002;&#x7528;&#x4E8E;&#x6240;&#x6709;&#x7684;&#x60C5;&#x51B5;--&#x6570;&#x636E;&#x6A21;&#x578B;&#x5FC5;&#x987B;&#x6709;&#x7C7B;&#x4F3C;&#x4E8E;&#x76EE;&#x5F55;&#x6811;&#x7684;&#x987A;&#x5E8F;&#x8BBF;&#x95EE;&#x8DEF;&#x5F84;&#x624D;&#x80FD;&#x4F7F;&#x7528;&#x3002;</p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x8FD9;&#x4E09;&#x4E2A;&#x65B9;&#x6848;--&#x5168;&#x5C40;&#x3001;&#x6587;&#x6863;&#x6216;&#x6811;&#x9501;--&#x90FD;&#x6CA1;&#x6709;&#x5904;&#x7406;&#x9501;&#x6700;&#x68D8;&#x624B;&#x7684;&#x95EE;&#x9898;&#xFF1A;&#x5982;&#x679C;&#x6301;&#x6709;&#x9501;&#x7684;&#x8FDB;&#x7A0B;&#x6B7B;&#x4E86;&#x600E;&#x4E48;&#x529E;&#xFF1F;  </p>
<p> &#x4E00;&#x4E2A;&#x8FDB;&#x7A0B;&#x7684;&#x610F;&#x5916;&#x6B7B;&#x4EA1;&#x7ED9;&#x6211;&#x4EEC;&#x7559;&#x4E0B;&#x4E86;2&#x4E2A;&#x95EE;&#x9898;&#xFF1A;</p>
<ul>
<li>&#x6211;&#x4EEC;&#x5982;&#x4F55;&#x77E5;&#x9053;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x91CA;&#x653E;&#x7684;&#x6B7B;&#x4EA1;&#x8FDB;&#x7A0B;&#x4E2D;&#x6240;&#x6301;&#x6709;&#x7684;&#x9501;&#xFF1F;</li>
<li><p>&#x6211;&#x4EEC;&#x5982;&#x4F55;&#x6E05;&#x7406;&#x6B7B;&#x53BB;&#x7684;&#x8FDB;&#x7A0B;&#x6CA1;&#x6709;&#x5B8C;&#x6210;&#x7684;&#x53D8;&#x66F4;&#xFF1F;</p>
<p>&#x8FD9;&#x4E9B;&#x4E3B;&#x9898;&#x8D85;&#x51FA;&#x4E86;&#x672C;&#x4E66;&#x7684;&#x8303;&#x56F4;&#xFF0C;&#x4F46;&#x662F;&#x5982;&#x679C;&#x4F60;&#x51B3;&#x5B9A;&#x4F7F;&#x7528;&#x9501;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x7ED9;&#x5BF9;&#x4ED6;&#x4EEC;&#x8FDB;&#x884C;&#x4E00;&#x4E9B;&#x601D;&#x8003;&#x3002;</p>
</li>
</ul>
</blockquote>
<p>&#x5F53;&#x975E;&#x89C4;&#x8303;&#x5316;&#x6210;&#x4E3A;&#x5F88;&#x591A;&#x9879;&#x76EE;&#x7684;&#x4E00;&#x4E2A;&#x5F88;&#x597D;&#x7684;&#x9009;&#x62E9;&#xFF0C;&#x91C7;&#x7528;&#x9501;&#x65B9;&#x6848;&#x7684;&#x9700;&#x6C42;&#x4F1A;&#x5E26;&#x6765;&#x590D;&#x6742;&#x7684;&#x5B9E;&#x73B0;&#x903B;&#x8F91;&#x3002; &#x4F5C;&#x4E3A;&#x66FF;&#x4EE3;&#x65B9;&#x6848;&#xFF0C;Elasticsearch &#x63D0;&#x4F9B;&#x4E24;&#x4E2A;&#x6A21;&#x578B;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x5904;&#x7406;&#x76F8;&#x5173;&#x8054;&#x7684;&#x5B9E;&#x4F53;&#xFF1A; <em>&#x5D4C;&#x5957;&#x7684;&#x5BF9;&#x8C61;</em> &#x548C; <em>&#x7236;&#x5B50;&#x5173;&#x7CFB;</em> &#x3002;</p>
<h2 id="&#x5D4C;&#x5957;&#x5BF9;&#x8C61;"><a name="&#x5D4C;&#x5957;&#x5BF9;&#x8C61;" class="anchor-navigation-ex-anchor" href="#&#x5D4C;&#x5957;&#x5BF9;&#x8C61;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5D4C;&#x5957;&#x5BF9;&#x8C61;</h2>
<p>&#x7531;&#x4E8E;&#x5728; Elasticsearch &#x4E2D;&#x5355;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x589E;&#x5220;&#x6539;&#x90FD;&#x662F;&#x539F;&#x5B50;&#x6027;&#x64CD;&#x4F5C;,&#x90A3;&#x4E48;&#x5C06;&#x76F8;&#x5173;&#x5B9E;&#x4F53;&#x6570;&#x636E;&#x90FD;&#x5B58;&#x50A8;&#x5728;&#x540C;&#x4E00;&#x6587;&#x6863;&#x4E2D;&#x4E5F;&#x5C31;&#x7406;&#x6240;&#x5F53;&#x7136;&#x3002; &#x6BD4;&#x5982;&#x8BF4;,&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5C06;&#x8BA2;&#x5355;&#x53CA;&#x5176;&#x660E;&#x7EC6;&#x6570;&#x636E;&#x5B58;&#x50A8;&#x5728;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4E2D;&#x3002;&#x53C8;&#x6BD4;&#x5982;,&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5C06;&#x4E00;&#x7BC7;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x7684;&#x8BC4;&#x8BBA;&#x4EE5;&#x4E00;&#x4E2A; <code>comments</code> &#x6570;&#x7EC4;&#x7684;&#x5F62;&#x5F0F;&#x548C;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x653E;&#x5728;&#x4E00;&#x8D77;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index/blogpost/<span class="hljs-number">1</span>
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;Nest eggs&quot;</span>,
  <span class="hljs-string">&quot;body&quot;</span>:  <span class="hljs-string">&quot;Making your money work...&quot;</span>,
  <span class="hljs-string">&quot;tags&quot;</span>:  [ <span class="hljs-string">&quot;cash&quot;</span>, <span class="hljs-string">&quot;shares&quot;</span> ],
  <span class="hljs-string">&quot;comments&quot;</span>: [                                  <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
    {
      &quot;name&quot;:    &quot;John Smith&quot;,
      &quot;comment&quot;: &quot;Great article&quot;,
      &quot;age&quot;:     28,
      &quot;stars&quot;:   4,
      &quot;date&quot;:    &quot;2014-09-01&quot;
    },
    {
      &quot;name&quot;:    &quot;Alice White&quot;,
      &quot;comment&quot;: &quot;More like this please&quot;,
      &quot;age&quot;:     31,
      &quot;stars&quot;:   5,
      &quot;date&quot;:    &quot;2014-10-22&quot;
    }
  ]
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x5982;&#x679C;&#x6211;&#x4EEC;&#x4F9D;&#x8D56;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/dynamic-mapping.html" target="_blank">&#x5B57;&#x6BB5;&#x81EA;&#x52A8;&#x6620;&#x5C04;</a>,&#x90A3;&#x4E48; <code>comments</code> &#x5B57;&#x6BB5;&#x4F1A;&#x81EA;&#x52A8;&#x6620;&#x5C04;&#x4E3A; <code>object</code> &#x7C7B;&#x578B;&#x3002;   </p>
</blockquote>
<p>&#x7531;&#x4E8E;&#x6240;&#x6709;&#x7684;&#x4FE1;&#x606F;&#x90FD;&#x5728;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4E2D;,&#x5F53;&#x6211;&#x4EEC;&#x67E5;&#x8BE2;&#x65F6;&#x5C31;&#x6CA1;&#x6709;&#x5FC5;&#x8981;&#x53BB;&#x8054;&#x5408;&#x6587;&#x7AE0;&#x548C;&#x8BC4;&#x8BBA;&#x6587;&#x6863;,&#x67E5;&#x8BE2;&#x6548;&#x7387;&#x5C31;&#x5F88;&#x9AD8;&#x3002;</p>
<p>&#x4F46;&#x662F;&#x5F53;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x5982;&#x4E0B;&#x67E5;&#x8BE2;&#x65F6;,&#x4E0A;&#x9762;&#x7684;&#x6587;&#x6863;&#x4E5F;&#x4F1A;&#x88AB;&#x5F53;&#x505A;&#x662F;&#x7B26;&#x5408;&#x6761;&#x4EF6;&#x7684;&#x7ED3;&#x679C;&#xFF1A;</p>
<pre><code class="lang-json">GET /_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;bool&quot;</span>: {
      <span class="hljs-string">&quot;must&quot;</span>: [
        { <span class="hljs-string">&quot;match&quot;</span>: { <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Alice&quot;</span> }},
        { <span class="hljs-string">&quot;match&quot;</span>: { <span class="hljs-string">&quot;age&quot;</span>:  <span class="hljs-number">28</span>      }}          &lt;<span class="hljs-number">1</span>&gt;
      ]
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  Alice&#x5B9E;&#x9645;&#x662F;31&#x5C81;,&#x4E0D;&#x662F;28!   </p>
</blockquote>
<p>&#x6B63;&#x5982;&#x6211;&#x4EEC;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/complex-core-fields.html#object-arrays" target="_blank">&#x5BF9;&#x8C61;&#x6570;&#x7EC4;</a> &#x4E2D;&#x8BA8;&#x8BBA;&#x7684;&#x4E00;&#x6837;,&#x51FA;&#x73B0;&#x4E0A;&#x9762;&#x8FD9;&#x79CD;&#x95EE;&#x9898;&#x7684;&#x539F;&#x56E0;&#x662F; JSON &#x683C;&#x5F0F;&#x7684;&#x6587;&#x6863;&#x88AB;&#x5904;&#x7406;&#x6210;&#x5982;&#x4E0B;&#x7684;&#x6241;&#x5E73;&#x5F0F;&#x952E;&#x503C;&#x5BF9;&#x7684;&#x7ED3;&#x6784;&#x3002;</p>
<pre><code class="lang-json">{
  <span class="hljs-string">&quot;title&quot;</span>:            [ eggs, nest ],
  <span class="hljs-string">&quot;body&quot;</span>:             [ making, money, work, your ],
  <span class="hljs-string">&quot;tags&quot;</span>:             [ cash, shares ],
  <span class="hljs-string">&quot;comments.name&quot;</span>:    [ alice, john, smith, white ],
  <span class="hljs-string">&quot;comments.comment&quot;</span>: [ article, great, like, more, please, <span class="hljs-keyword">this</span> ],
  <span class="hljs-string">&quot;comments.age&quot;</span>:     [ <span class="hljs-number">28</span>, <span class="hljs-number">31</span> ],
  <span class="hljs-string">&quot;comments.stars&quot;</span>:   [ <span class="hljs-number">4</span>, <span class="hljs-number">5</span> ],
  <span class="hljs-string">&quot;comments.date&quot;</span>:    [ <span class="hljs-number">2014</span><span class="hljs-number">-09</span><span class="hljs-number">-01</span>, <span class="hljs-number">2014</span><span class="hljs-number">-10</span><span class="hljs-number">-22</span> ]
}
</code></pre>
<p><code>Alice</code> &#x548C; 31 &#x3001; <code>John</code> &#x548C; <code>2014-09-01</code> &#x4E4B;&#x95F4;&#x7684;&#x76F8;&#x5173;&#x6027;&#x4FE1;&#x606F;&#x4E0D;&#x518D;&#x5B58;&#x5728;&#x3002;&#x867D;&#x7136; <code>object</code> &#x7C7B;&#x578B; (&#x53C2;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/complex-core-fields.html#inner-objects" target="_blank">&#x5185;&#x90E8;&#x5BF9;&#x8C61;</a>) &#x5728;&#x5B58;&#x50A8; <em>&#x5355;&#x4E00;&#x5BF9;&#x8C61;</em> &#x65F6;&#x975E;&#x5E38;&#x6709;&#x7528;,&#x4F46;&#x5BF9;&#x4E8E;&#x5BF9;&#x8C61;&#x6570;&#x7EC4;&#x7684;&#x641C;&#x7D22;&#x800C;&#x8A00;,&#x6BEB;&#x65E0;&#x7528;&#x5904;&#x3002;</p>
<p><em>&#x5D4C;&#x5957;&#x5BF9;&#x8C61;</em> &#x5C31;&#x662F;&#x6765;&#x89E3;&#x51B3;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x7684;&#x3002;&#x5C06; <code>comments</code> &#x5B57;&#x6BB5;&#x7C7B;&#x578B;&#x8BBE;&#x7F6E;&#x4E3A; <code>nested</code> &#x800C;&#x4E0D;&#x662F; <code>object</code> &#x540E;,&#x6BCF;&#x4E00;&#x4E2A;&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x90FD;&#x4F1A;&#x88AB;&#x7D22;&#x5F15;&#x4E3A;&#x4E00;&#x4E2A; <em>&#x9690;&#x85CF;&#x7684;&#x72EC;&#x7ACB;&#x6587;&#x6863;</em> ,&#x4E3E;&#x4F8B;&#x5982;&#x4E0B;:</p>
<pre><code class="lang-json">{   &lt;1&gt;
  &quot;comments.name&quot;:    [ john, smith ],
  &quot;comments.comment&quot;: [ article, great ],
  &quot;comments.age&quot;:     [ 28 ],
  &quot;comments.stars&quot;:   [ 4 ],
  &quot;comments.date&quot;:    [ 2014-09-01 ]
} 
{   &lt;2&gt;
  &quot;comments.name&quot;:    [ alice, white ],
  &quot;comments.comment&quot;: [ like, more, please, this ],
  &quot;comments.age&quot;:     [ 31 ],
  &quot;comments.stars&quot;:   [ 5 ],
  &quot;comments.date&quot;:    [ 2014-10-22 ]
}
{   &lt;3&gt;
  &quot;title&quot;:            [ eggs, nest ],
  &quot;body&quot;:             [ making, money, work, your ],
  &quot;tags&quot;:             [ cash, shares ]
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x7B2C;&#x4E00;&#x4E2A; <code>&#x5D4C;&#x5957;&#x6587;&#x6863;</code>    </p>
<p> <img src="assets/2.png" alt="img">  &#x7B2C;&#x4E8C;&#x4E2A; <code>&#x5D4C;&#x5957;&#x6587;&#x6863;</code>   </p>
<p> <img src="assets/3.png" alt="img">  <em>&#x6839;&#x6587;&#x6863;</em> &#x6216;&#x8005;&#x4E5F;&#x53EF;&#x79F0;&#x4E3A;&#x7236;&#x6587;&#x6863;   </p>
</blockquote>
<p>&#x5728;&#x72EC;&#x7ACB;&#x7D22;&#x5F15;&#x6BCF;&#x4E00;&#x4E2A;&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x540E;,&#x5BF9;&#x8C61;&#x4E2D;&#x6BCF;&#x4E2A;&#x5B57;&#x6BB5;&#x7684;&#x76F8;&#x5173;&#x6027;&#x5F97;&#x4EE5;&#x4FDD;&#x7559;&#x3002;&#x6211;&#x4EEC;&#x67E5;&#x8BE2;&#x65F6;,&#x4E5F;&#x4EC5;&#x4EC5;&#x8FD4;&#x56DE;&#x90A3;&#x4E9B;&#x771F;&#x6B63;&#x7B26;&#x5408;&#x6761;&#x4EF6;&#x7684;&#x6587;&#x6863;&#x3002;</p>
<p>&#x4E0D;&#x4EC5;&#x5982;&#x6B64;,&#x7531;&#x4E8E;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x76F4;&#x63A5;&#x5B58;&#x50A8;&#x5728;&#x6587;&#x6863;&#x5185;&#x90E8;,&#x67E5;&#x8BE2;&#x65F6;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x548C;&#x6839;&#x6587;&#x6863;&#x8054;&#x5408;&#x6210;&#x672C;&#x5F88;&#x4F4E;,&#x901F;&#x5EA6;&#x548C;&#x5355;&#x72EC;&#x5B58;&#x50A8;&#x51E0;&#x4E4E;&#x4E00;&#x6837;&#x3002;</p>
<p>&#x5D4C;&#x5957;&#x6587;&#x6863;&#x662F;&#x9690;&#x85CF;&#x5B58;&#x50A8;&#x7684;,&#x6211;&#x4EEC;&#x4E0D;&#x80FD;&#x76F4;&#x63A5;&#x83B7;&#x53D6;&#x3002;&#x5982;&#x679C;&#x8981;&#x589E;&#x5220;&#x6539;&#x4E00;&#x4E2A;&#x5D4C;&#x5957;&#x5BF9;&#x8C61;,&#x6211;&#x4EEC;&#x5FC5;&#x987B;&#x628A;&#x6574;&#x4E2A;&#x6587;&#x6863;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x624D;&#x53EF;&#x4EE5;&#x3002;&#x503C;&#x5F97;&#x6CE8;&#x610F;&#x7684;&#x662F;,&#x67E5;&#x8BE2;&#x7684;&#x65F6;&#x5019;&#x8FD4;&#x56DE;&#x7684;&#x662F;&#x6574;&#x4E2A;&#x6587;&#x6863;,&#x800C;&#x4E0D;&#x662F;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x672C;&#x8EAB;&#x3002;</p>
<h3 id="&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x6620;&#x5C04;"><a name="&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x6620;&#x5C04;" class="anchor-navigation-ex-anchor" href="#&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x6620;&#x5C04;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x6620;&#x5C04;</h3>
<p>&#x8BBE;&#x7F6E;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&#x4E3A; <code>nested</code> &#x5F88;&#x7B80;&#x5355;&#x2009;&#x2014;&#x2009; &#x4F60;&#x53EA;&#x9700;&#x8981;&#x5C06;&#x5B57;&#x6BB5;&#x7C7B;&#x578B; <code>object</code> &#x66FF;&#x6362;&#x4E3A; <code>nested</code> &#x5373;&#x53EF;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index
{
  <span class="hljs-string">&quot;mappings&quot;</span>: {
    <span class="hljs-string">&quot;blogpost&quot;</span>: {
      <span class="hljs-string">&quot;properties&quot;</span>: {
        <span class="hljs-string">&quot;comments&quot;</span>: {
          <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;nested&quot;</span>,                            <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
          &quot;properties&quot;: {
            &quot;name&quot;:    { &quot;type&quot;: &quot;string&quot;  },
            &quot;comment&quot;: { &quot;type&quot;: &quot;string&quot;  },
            &quot;age&quot;:     { &quot;type&quot;: &quot;short&quot;   },
            &quot;stars&quot;:   { &quot;type&quot;: &quot;short&quot;   },
            &quot;date&quot;:    { &quot;type&quot;: &quot;date&quot;    }
          }
        }
      }
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>nested</code> &#x5B57;&#x6BB5;&#x7C7B;&#x578B;&#x7684;&#x8BBE;&#x7F6E;&#x53C2;&#x6570;&#x4E0E; <code>object</code> &#x76F8;&#x540C;&#x3002;  </p>
</blockquote>
<p>&#x8FD9;&#x5C31;&#x662F;&#x9700;&#x8981;&#x8BBE;&#x7F6E;&#x7684;&#x4E00;&#x5207;&#x3002;&#x81F3;&#x6B64;&#xFF0C;&#x6240;&#x6709; <code>comments</code> &#x5BF9;&#x8C61;&#x4F1A;&#x88AB;&#x7D22;&#x5F15;&#x5728;&#x72EC;&#x7ACB;&#x7684;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x4E2D;&#x3002;&#x53EF;&#x4EE5;&#x67E5;&#x770B; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/nested.html" target="_blank"><code>nested</code> &#x7C7B;&#x578B;&#x53C2;&#x8003;&#x6587;&#x6863;</a> &#x83B7;&#x53D6;&#x66F4;&#x591A;&#x8BE6;&#x7EC6;&#x4FE1;&#x606F;&#x3002;</p>
<h3 id="&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x67E5;&#x8BE2;"><a name="&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x67E5;&#x8BE2;" class="anchor-navigation-ex-anchor" href="#&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x67E5;&#x8BE2;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x67E5;&#x8BE2;</h3>
<p>&#x7531;&#x4E8E;&#x5D4C;&#x5957;&#x5BF9;&#x8C61; &#x88AB;&#x7D22;&#x5F15;&#x5728;&#x72EC;&#x7ACB;&#x9690;&#x85CF;&#x7684;&#x6587;&#x6863;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x65E0;&#x6CD5;&#x76F4;&#x63A5;&#x67E5;&#x8BE2;&#x5B83;&#x4EEC;&#x3002; &#x76F8;&#x5E94;&#x5730;&#xFF0C;&#x6211;&#x4EEC;&#x5FC5;&#x987B;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/query-dsl-nested-query.html" target="_blank"><code>nested</code> &#x67E5;&#x8BE2;</a>&#x53BB;&#x83B7;&#x53D6;&#x5B83;&#x4EEC;&#xFF1A;</p>
<pre><code class="lang-json">GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;bool&quot;</span>: {
      <span class="hljs-string">&quot;must&quot;</span>: [
        {
          <span class="hljs-string">&quot;match&quot;</span>: {
            <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;eggs&quot;</span>                            &lt;<span class="hljs-number">1</span>&gt;
          }
        },
        {
          <span class="hljs-string">&quot;nested&quot;</span>: {
            <span class="hljs-string">&quot;path&quot;</span>: <span class="hljs-string">&quot;comments&quot;</span>,                        &lt;2&gt;
            &quot;query&quot;: {
              &quot;bool&quot;: { 
                &quot;must&quot;: [                              &lt;3&gt;
                  {
                    &quot;match&quot;: {
                      &quot;comments.name&quot;: &quot;john&quot;
                    }
                  },
                  {
                    &quot;match&quot;: {
                      &quot;comments.age&quot;: 28
                    }
                  }
                ]
              }
            }
          }
        }
      ]
}}}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>title</code> &#x5B50;&#x53E5;&#x662F;&#x67E5;&#x8BE2;&#x6839;&#x6587;&#x6863;&#x7684;&#x3002;    </p>
<p> <img src="assets/2.png" alt="img">   <code>nested</code> &#x5B50;&#x53E5;&#x4F5C;&#x7528;&#x4E8E;&#x5D4C;&#x5957;&#x5B57;&#x6BB5; <code>comments</code> &#x3002;&#x5728;&#x6B64;&#x67E5;&#x8BE2;&#x4E2D;&#xFF0C;&#x65E2;&#x4E0D;&#x80FD;&#x67E5;&#x8BE2;&#x6839;&#x6587;&#x6863;&#x5B57;&#x6BB5;&#xFF0C;&#x4E5F;&#x4E0D;&#x80FD;&#x67E5;&#x8BE2;&#x5176;&#x4ED6;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x3002;   </p>
<p> <img src="assets/3.png" alt="img">   <code>comments.name</code> &#x548C; <code>comments.age</code> &#x5B50;&#x53E5;&#x64CD;&#x4F5C;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x4E2D;&#x3002;   </p>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  <code>nested</code> &#x5B57;&#x6BB5;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x5176;&#x4ED6;&#x7684; <code>nested</code> &#x5B57;&#x6BB5;&#x3002;&#x540C;&#x6837;&#x5730;&#xFF0C;<code>nested</code> &#x67E5;&#x8BE2;&#x4E5F;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x5176;&#x4ED6;&#x7684; <code>nested</code> &#x67E5;&#x8BE2;&#x3002;&#x800C;&#x5D4C;&#x5957;&#x7684;&#x5C42;&#x6B21;&#x4F1A;&#x6309;&#x7167;&#x4F60;&#x6240;&#x671F;&#x5F85;&#x7684;&#x88AB;&#x5E94;&#x7528;&#x3002;  </p>
</blockquote>
<p><code>nested</code> &#x67E5;&#x8BE2;&#x80AF;&#x5B9A;&#x53EF;&#x4EE5;&#x5339;&#x914D;&#x5230;&#x591A;&#x4E2A;&#x5D4C;&#x5957;&#x7684;&#x6587;&#x6863;&#x3002;&#x6BCF;&#x4E00;&#x4E2A;&#x5339;&#x914D;&#x7684;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x90FD;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x76F8;&#x5173;&#x5EA6;&#x5F97;&#x5206;&#xFF0C;&#x4F46;&#x662F;&#x8FD9;&#x4F17;&#x591A;&#x7684;&#x5206;&#x6570;&#x6700;&#x7EC8;&#x9700;&#x8981;&#x6C47;&#x805A;&#x4E3A;&#x53EF;&#x4F9B;&#x6839;&#x6587;&#x6863;&#x4F7F;&#x7528;&#x7684;&#x4E00;&#x4E2A;&#x5206;&#x6570;&#x3002;</p>
<p>&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6839;&#x6587;&#x6863;&#x7684;&#x5206;&#x6570;&#x662F;&#x8FD9;&#x4E9B;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x5206;&#x6570;&#x7684;&#x5E73;&#x5747;&#x503C;&#x3002;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x8BBE;&#x7F6E; score_mode &#x53C2;&#x6570;&#x6765;&#x63A7;&#x5236;&#x8FD9;&#x4E2A;&#x5F97;&#x5206;&#x7B56;&#x7565;&#xFF0C;&#x76F8;&#x5173;&#x7B56;&#x7565;&#x6709; <code>avg</code> (&#x5E73;&#x5747;&#x503C;), <code>max</code> (&#x6700;&#x5927;&#x503C;), <code>sum</code> (&#x52A0;&#x548C;) &#x548C; <code>none</code> (&#x76F4;&#x63A5;&#x8FD4;&#x56DE; <code>1.0</code> &#x5E38;&#x6570;&#x503C;&#x5206;&#x6570;)&#x3002;</p>
<pre><code class="lang-json">GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;bool&quot;</span>: {
      <span class="hljs-string">&quot;must&quot;</span>: [
        {
          <span class="hljs-string">&quot;match&quot;</span>: {
            <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;eggs&quot;</span>
          }
        },
        {
          <span class="hljs-string">&quot;nested&quot;</span>: {
            <span class="hljs-string">&quot;path&quot;</span>: <span class="hljs-string">&quot;comments&quot;</span>,
            <span class="hljs-string">&quot;score_mode&quot;</span>: <span class="hljs-string">&quot;max&quot;</span>,                         <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
            &quot;query&quot;: {
              &quot;bool&quot;: {
                &quot;must&quot;: [
                  {
                    &quot;match&quot;: {
                      &quot;comments.name&quot;: &quot;john&quot;
                    }
                  },
                  {
                    &quot;match&quot;: {
                      &quot;comments.age&quot;: 28
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x8FD4;&#x56DE;&#x6700;&#x4F18;&#x5339;&#x914D;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x7684; <code>_score</code> &#x7ED9;&#x6839;&#x6587;&#x6863;&#x4F7F;&#x7528;&#x3002;   </p>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x5982;&#x679C; <code>nested</code> &#x67E5;&#x8BE2;&#x653E;&#x5728;&#x4E00;&#x4E2A;&#x5E03;&#x5C14;&#x67E5;&#x8BE2;&#x7684; <code>filter</code> &#x5B50;&#x53E5;&#x4E2D;&#xFF0C;&#x5176;&#x8868;&#x73B0;&#x5C31;&#x50CF;&#x4E00;&#x4E2A; <code>nested</code> &#x67E5;&#x8BE2;&#xFF0C;&#x53EA;&#x662F; <code>score_mode</code> &#x53C2;&#x6570;&#x4E0D;&#x518D;&#x751F;&#x6548;&#x3002;&#x56E0;&#x4E3A;&#x5B83;&#x88AB;&#x7528;&#x4E8E;&#x4E0D;&#x6253;&#x5206;&#x7684;&#x67E5;&#x8BE2;&#x4E2D;&#x2009;&#x2014;&#x2009;&#x53EA;&#x662F;&#x7B26;&#x5408;&#x6216;&#x4E0D;&#x7B26;&#x5408;&#x6761;&#x4EF6;&#xFF0C;&#x4E0D;&#x5FC5;&#x6253;&#x5206;&#x2009;&#x2014;&#x2009;&#x90A3;&#x4E48; <code>score_mode</code> &#x5C31;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x610F;&#x4E49;&#xFF0C;&#x56E0;&#x4E3A;&#x6839;&#x672C;&#x5C31;&#x6CA1;&#x6709;&#x8981;&#x6253;&#x5206;&#x7684;&#x5730;&#x65B9;&#x3002;  </p>
</blockquote>
<h3 id="&#x4F7F;&#x7528;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x6392;&#x5E8F;"><a name="&#x4F7F;&#x7528;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x6392;&#x5E8F;" class="anchor-navigation-ex-anchor" href="#&#x4F7F;&#x7528;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x6392;&#x5E8F;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4F7F;&#x7528;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x6392;&#x5E8F;</h3>
<p>&#x5C3D;&#x7BA1;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x7684;&#x503C;&#x5B58;&#x50A8;&#x4E8E;&#x72EC;&#x7ACB;&#x7684;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x4E2D;&#xFF0C;&#x4F46;&#x4F9D;&#x7136;&#x6709;&#x65B9;&#x6CD5;&#x6309;&#x7167;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#x7684;&#x503C;&#x6392;&#x5E8F;&#x3002; &#x8BA9;&#x6211;&#x4EEC;&#x6DFB;&#x52A0;&#x53E6;&#x4E00;&#x4E2A;&#x8BB0;&#x5F55;&#xFF0C;&#x4EE5;&#x4F7F;&#x5F97;&#x7ED3;&#x679C;&#x66F4;&#x6709;&#x610F;&#x601D;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index/blogpost/<span class="hljs-number">2</span>
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;Investment secrets&quot;</span>,
  <span class="hljs-string">&quot;body&quot;</span>:  <span class="hljs-string">&quot;What they don&apos;t tell you ...&quot;</span>,
  <span class="hljs-string">&quot;tags&quot;</span>:  [ <span class="hljs-string">&quot;shares&quot;</span>, <span class="hljs-string">&quot;equities&quot;</span> ],
  <span class="hljs-string">&quot;comments&quot;</span>: [
    {
      <span class="hljs-string">&quot;name&quot;</span>:    <span class="hljs-string">&quot;Mary Brown&quot;</span>,
      <span class="hljs-string">&quot;comment&quot;</span>: <span class="hljs-string">&quot;Lies, lies, lies&quot;</span>,
      <span class="hljs-string">&quot;age&quot;</span>:     <span class="hljs-number">42</span>,
      <span class="hljs-string">&quot;stars&quot;</span>:   <span class="hljs-number">1</span>,
      <span class="hljs-string">&quot;date&quot;</span>:    <span class="hljs-string">&quot;2014-10-18&quot;</span>
    },
    {
      <span class="hljs-string">&quot;name&quot;</span>:    <span class="hljs-string">&quot;John Smith&quot;</span>,
      <span class="hljs-string">&quot;comment&quot;</span>: <span class="hljs-string">&quot;You&apos;re making it up!&quot;</span>,
      <span class="hljs-string">&quot;age&quot;</span>:     <span class="hljs-number">28</span>,
      <span class="hljs-string">&quot;stars&quot;</span>:   <span class="hljs-number">2</span>,
      <span class="hljs-string">&quot;date&quot;</span>:    <span class="hljs-string">&quot;2014-10-16&quot;</span>
    }
  ]
}
</code></pre>
<p>&#x5047;&#x5982;&#x6211;&#x4EEC;&#x60F3;&#x8981;&#x67E5;&#x8BE2;&#x5728;10&#x6708;&#x4EFD;&#x6536;&#x5230;&#x8BC4;&#x8BBA;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#xFF0C;&#x5E76;&#x4E14;&#x6309;&#x7167; <code>stars</code> &#x6570;&#x7684;&#x6700;&#x5C0F;&#x503C;&#x6765;&#x7531;&#x5C0F;&#x5230;&#x5927;&#x6392;&#x5E8F;&#xFF0C;&#x90A3;&#x4E48;&#x67E5;&#x8BE2;&#x8BED;&#x53E5;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="lang-json">GET /_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;nested&quot;</span>: {                                 &lt;1&gt;
      &quot;path&quot;: &quot;comments&quot;,
      &quot;filter&quot;: {
        &quot;range&quot;: {
          &quot;comments.date&quot;: {
            &quot;gte&quot;: &quot;2014-10-01&quot;,
            &quot;lt&quot;:  &quot;2014-11-01&quot;
          }
        }
      }
    }
  },
  &quot;sort&quot;: {
    &quot;comments.stars&quot;: {                        &lt;2&gt;
      &quot;order&quot;: &quot;asc&quot;,                          &lt;3&gt;
      &quot;mode&quot;:  &quot;min&quot;,                          &lt;4&gt;
      &quot;nested_path&quot;: &quot;comments&quot;,               &lt;5&gt;
      &quot;nested_filter&quot;: {
        &quot;range&quot;: {
          &quot;comments.date&quot;: {
            &quot;gte&quot;: &quot;2014-10-01&quot;,
            &quot;lt&quot;:  &quot;2014-11-01&quot;
          }
        }
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x6B64;&#x5904;&#x7684; <code>nested</code> &#x67E5;&#x8BE2;&#x5C06;&#x7ED3;&#x679C;&#x9650;&#x5B9A;&#x4E3A;&#x5728;10&#x6708;&#x4EFD;&#x6536;&#x5230;&#x8FC7;&#x8BC4;&#x8BBA;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x3002;   </p>
<p> <img src="assets/2.png" alt="img"> <img src="assets/3.png" alt="img"> <img src="assets/4.png" alt="img">   &#x7ED3;&#x679C;&#x6309;&#x7167;&#x5339;&#x914D;&#x7684;&#x8BC4;&#x8BBA;&#x4E2D; <code>comment.stars</code> &#x5B57;&#x6BB5;&#x7684;&#x6700;&#x5C0F;&#x503C; (<code>min</code>) &#x6765;&#x7531;&#x5C0F;&#x5230;&#x5927; (<code>asc</code>) &#x6392;&#x5E8F;&#x3002;   </p>
<p> <img src="assets/5.png" alt="img">   &#x6392;&#x5E8F;&#x5B50;&#x53E5;&#x4E2D;&#x7684; <code>nested_path</code> &#x548C; <code>nested_filter</code> &#x548C; <code>query</code> &#x5B50;&#x53E5;&#x4E2D;&#x7684; <code>nested</code> &#x67E5;&#x8BE2;&#x76F8;&#x540C;&#xFF0C;&#x539F;&#x56E0;&#x5728;&#x4E0B;&#x9762;&#x6709;&#x89E3;&#x91CA;&#x3002;  </p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x4E3A;&#x4EC0;&#x4E48;&#x8981;&#x7528; nested_path &#x548C; nested_filter &#x91CD;&#x590D;&#x67E5;&#x8BE2;&#x6761;&#x4EF6;&#x5462;&#xFF1F;&#x539F;&#x56E0;&#x5728;&#x4E8E;&#xFF0C;&#x6392;&#x5E8F;&#x53D1;&#x751F;&#x5728;&#x67E5;&#x8BE2;&#x6267;&#x884C;&#x4E4B;&#x540E;&#x3002; &#x67E5;&#x8BE2;&#x6761;&#x4EF6;&#x9650;&#x5B9A;&#x4E86;&#x5728;10&#x6708;&#x4EFD;&#x6536;&#x5230;&#x8BC4;&#x8BBA;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x6863;&#xFF0C;&#x4F46;&#x8FD4;&#x56DE;&#x7684;&#x662F;&#x535A;&#x5BA2;&#x6587;&#x6863;&#x3002;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x4E0D;&#x5728;&#x6392;&#x5E8F;&#x5B50;&#x53E5;&#x4E2D;&#x52A0;&#x5165; <code>nested_filter</code> &#xFF0C; &#x90A3;&#x4E48;&#x6211;&#x4EEC;&#x5BF9;&#x535A;&#x5BA2;&#x6587;&#x6863;&#x7684;&#x6392;&#x5E8F;&#x5C06;&#x57FA;&#x4E8E;&#x535A;&#x5BA2;&#x6587;&#x6863;&#x7684;&#x6240;&#x6709;&#x8BC4;&#x8BBA;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x4EC5;&#x4EC5;&#x5728;10&#x6708;&#x4EFD;&#x63A5;&#x6536;&#x5230;&#x7684;&#x8BC4;&#x8BBA;&#x3002;</p>
<h3 id="&#x5D4C;&#x5957;&#x805A;&#x5408;"><a name="&#x5D4C;&#x5957;&#x805A;&#x5408;" class="anchor-navigation-ex-anchor" href="#&#x5D4C;&#x5957;&#x805A;&#x5408;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5D4C;&#x5957;&#x805A;&#x5408;</h3>
<p>&#x5728;&#x67E5;&#x8BE2;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x6211;&#x4EEC;&#x4F7F;&#x7528; <code>nested</code> &#x67E5;&#x8BE2; &#x5C31;&#x53EF;&#x4EE5;&#x83B7;&#x53D6;&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x7684;&#x4FE1;&#x606F;&#x3002;&#x540C;&#x7406;&#xFF0C; <code>nested</code> &#x805A;&#x5408;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x5BF9;&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x91CC;&#x7684;&#x5B57;&#x6BB5;&#x8FDB;&#x884C;&#x805A;&#x5408;&#x64CD;&#x4F5C;&#x3002;</p>
<pre><code class="lang-json">GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;size&quot;</span> : <span class="hljs-number">0</span>,
  <span class="hljs-string">&quot;aggs&quot;</span>: {
    <span class="hljs-string">&quot;comments&quot;</span>: {                             &lt;1&gt;
      &quot;nested&quot;: {
        &quot;path&quot;: &quot;comments&quot;
      },
      &quot;aggs&quot;: {
        &quot;by_month&quot;: {
          &quot;date_histogram&quot;: {                 &lt;2&gt;
            &quot;field&quot;:    &quot;comments.date&quot;,
            &quot;interval&quot;: &quot;month&quot;,
            &quot;format&quot;:   &quot;yyyy-MM&quot;
          },
          &quot;aggs&quot;: {                           &lt;3&gt;
            &quot;avg_stars&quot;: {
              &quot;avg&quot;: { 
                &quot;field&quot;: &quot;comments.stars&quot;
              }
            }
          }
        }
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>nested</code> &#x805A;&#x5408; &#x201C;&#x8FDB;&#x5165;&#x201D; &#x5D4C;&#x5957;&#x7684; <code>comments</code> &#x5BF9;&#x8C61;&#x3002;      </p>
<p> <img src="assets/2.png" alt="img">  comment&#x5BF9;&#x8C61;&#x6839;&#x636E; comments.date &#x5B57;&#x6BB5;&#x7684;&#x6708;&#x4EFD;&#x503C;&#x88AB;&#x5206;&#x5230;&#x4E0D;&#x540C;&#x7684;&#x6876;&#x3002;  </p>
<p> <img src="assets/3.png" alt="img">  &#x8BA1;&#x7B97;&#x6BCF;&#x4E2A;&#x6876;&#x5185;star&#x7684;&#x5E73;&#x5747;&#x6570;&#x91CF;&#x3002;    </p>
</blockquote>
<p>&#x4ECE;&#x4E0B;&#x9762;&#x7684;&#x7ED3;&#x679C;&#x53EF;&#x4EE5;&#x770B;&#x51FA;&#x805A;&#x5408;&#x662F;&#x5728;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x5C42;&#x9762;&#x8FDB;&#x884C;&#x7684;&#xFF1A;</p>
<pre><code class="lang-json">...
<span class="hljs-string">&quot;aggregations&quot;</span>: {
  <span class="hljs-string">&quot;comments&quot;</span>: {
     <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">4</span>,                                  &lt;1&gt;
     &quot;by_month&quot;: {
        &quot;buckets&quot;: [
           {
              &quot;key_as_string&quot;: &quot;2014-09&quot;,
              &quot;key&quot;: 1409529600000,
              &quot;doc_count&quot;: 1,                         &lt;2&gt;
              &quot;avg_stars&quot;: {
                 &quot;value&quot;: 4
              }
           },
           {
              &quot;key_as_string&quot;: &quot;2014-10&quot;,
              &quot;key&quot;: 1412121600000,
              &quot;doc_count&quot;: 3,                         &lt;3&gt;
              &quot;avg_stars&quot;: {
                 &quot;value&quot;: 2.6666666666666665
              }
           }
        ]
     }
  }
}
...
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> <img src="assets/2.png" alt="img"> <img src="assets/3.png" alt="img">  &#x603B;&#x5171;&#x6709;4&#x4E2A; <code>comments</code> &#x5BF9;&#x8C61; &#xFF1A;1&#x4E2A;&#x5BF9;&#x8C61;&#x5728;9&#x6708;&#x7684;&#x6876;&#x91CC;&#xFF0C;3&#x4E2A;&#x5BF9;&#x8C61;&#x5728;10&#x6708;&#x7684;&#x6876;&#x91CC;&#x3002;   </p>
</blockquote>
<p><strong>&#x9006;&#x5411;&#x5D4C;&#x5957;&#x805A;&#x5408;</strong></p>
<p><code>nested</code> &#x805A;&#x5408; &#x53EA;&#x80FD;&#x5BF9;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x7684;&#x5B57;&#x6BB5;&#x8FDB;&#x884C;&#x64CD;&#x4F5C;&#x3002; &#x6839;&#x6587;&#x6863;&#x6216;&#x8005;&#x5176;&#x4ED6;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x7684;&#x5B57;&#x6BB5;&#x5BF9;&#x5B83;&#x662F;&#x4E0D;&#x53EF;&#x89C1;&#x7684;&#x3002; &#x7136;&#x800C;&#xFF0C;&#x901A;&#x8FC7; <code>reverse_nested</code> &#x805A;&#x5408;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5; <em>&#x8D70;&#x51FA;</em> &#x5D4C;&#x5957;&#x5C42;&#x7EA7;&#xFF0C;&#x56DE;&#x5230;&#x7236;&#x7EA7;&#x6587;&#x6863;&#x8FDB;&#x884C;&#x64CD;&#x4F5C;&#x3002;</p>
<p>&#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x8981;&#x57FA;&#x4E8E;&#x8BC4;&#x8BBA;&#x8005;&#x7684;&#x5E74;&#x9F84;&#x627E;&#x51FA;&#x8BC4;&#x8BBA;&#x8005;&#x611F;&#x5174;&#x8DA3; <code>tags</code> &#x7684;&#x5206;&#x5E03;&#x3002; <code>comment.age</code> &#x662F;&#x4E00;&#x4E2A;&#x5D4C;&#x5957;&#x5B57;&#x6BB5;&#xFF0C;&#x4F46; <code>tags</code>&#x5728;&#x6839;&#x6587;&#x6863;&#x4E2D;&#xFF1A;</p>
<pre><code class="lang-json">GET /my_index/blogpost/_search
{
  <span class="hljs-string">&quot;size&quot;</span> : <span class="hljs-number">0</span>,
  <span class="hljs-string">&quot;aggs&quot;</span>: {
    <span class="hljs-string">&quot;comments&quot;</span>: {
      <span class="hljs-string">&quot;nested&quot;</span>: {                              &lt;1&gt;
        &quot;path&quot;: &quot;comments&quot;
      },
      &quot;aggs&quot;: {
        &quot;age_group&quot;: {
          &quot;histogram&quot;: {                       &lt;2&gt;
            &quot;field&quot;:    &quot;comments.age&quot;,
            &quot;interval&quot;: 10
          },
          &quot;aggs&quot;: {
            &quot;blogposts&quot;: {
              &quot;reverse_nested&quot;: {},            &lt;3&gt;
              &quot;aggs&quot;: {
                &quot;tags&quot;: {
                  &quot;terms&quot;: {                   &lt;4&gt;
                    &quot;field&quot;: &quot;tags&quot;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>nested</code> &#x805A;&#x5408;&#x8FDB;&#x5165; <code>comments</code> &#x5BF9;&#x8C61;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  <code>histogram</code> &#x805A;&#x5408;&#x57FA;&#x4E8E; <code>comments.age</code> &#x505A;&#x5206;&#x7EC4;&#xFF0C;&#x6BCF;10&#x5E74;&#x4E00;&#x4E2A;&#x5206;&#x7EC4;&#x3002; </p>
<p> <img src="assets/3.png" alt="img">   <code>reverse_nested</code> &#x805A;&#x5408;&#x9000;&#x56DE;&#x6839;&#x6587;&#x6863;&#x3002;             </p>
<p> <img src="assets/4.png" alt="img">  <code>terms</code> &#x805A;&#x5408;&#x8BA1;&#x7B97;&#x6BCF;&#x4E2A;&#x5206;&#x7EC4;&#x5E74;&#x9F84;&#x6BB5;&#x7684;&#x8BC4;&#x8BBA;&#x8005;&#x6700;&#x5E38;&#x7528;&#x7684;&#x6807;&#x7B7E;&#x8BCD;&#x3002;      </p>
</blockquote>
<p>&#x7B80;&#x7565;&#x7ED3;&#x679C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-json">..
<span class="hljs-string">&quot;aggregations&quot;</span>: {
  <span class="hljs-string">&quot;comments&quot;</span>: {
     <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">4</span>,                                            &lt;1&gt;
     &quot;age_group&quot;: {
        &quot;buckets&quot;: [
           {
              &quot;key&quot;: 20,                                        &lt;2&gt;
              &quot;doc_count&quot;: 2,                                   &lt;3&gt;
              &quot;blogposts&quot;: { 
                 &quot;doc_count&quot;: 2,                                &lt;4&gt;
                 &quot;tags&quot;: {
                    &quot;doc_count_error_upper_bound&quot;: 0,
                    &quot;buckets&quot;: [                                &lt;5&gt;
                       { &quot;key&quot;: &quot;shares&quot;,   &quot;doc_count&quot;: 2 },
                       { &quot;key&quot;: &quot;cash&quot;,     &quot;doc_count&quot;: 1 },
                       { &quot;key&quot;: &quot;equities&quot;, &quot;doc_count&quot;: 1 }
                    ]
                 }
              }
           },
...
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x4E00;&#x5171;&#x6709;4&#x6761;&#x8BC4;&#x8BBA;&#x3002;       </p>
<p> <img src="assets/2.png" alt="img"> <img src="assets/3.png" alt="img">  &#x5728;20&#x5C81;&#x5230;30&#x5C81;&#x4E4B;&#x95F4;&#x603B;&#x5171;&#x6709;&#x4E24;&#x6761;&#x8BC4;&#x8BBA;&#x3002;       </p>
<p> <img src="assets/4.png" alt="img">  &#x8FD9;&#x4E9B;&#x8BC4;&#x8BBA;&#x5305;&#x542B;&#x5728;&#x4E24;&#x7BC7;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x4E2D;&#x3002;   </p>
<p> <img src="assets/5.png" alt="img">  &#x5728;&#x8FD9;&#x4E9B;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x4E2D;&#x6700;&#x70ED;&#x95E8;&#x7684;&#x6807;&#x7B7E;&#x662F; <code>shares</code>&#x3001; <code>cash</code>&#x3001;<code>equities</code>&#x3002;  </p>
</blockquote>
<p><strong>&#x5D4C;&#x5957;&#x5BF9;&#x8C61;&#x7684;&#x4F7F;&#x7528;&#x65F6;&#x673A;</strong></p>
<p>&#x5D4C;&#x5957;&#x5BF9;&#x8C61; &#x5728;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x4E3B;&#x8981;&#x5B9E;&#x4F53;&#x65F6;&#x975E;&#x5E38;&#x6709;&#x7528;&#xFF0C;&#x8FD9;&#x4E2A;&#x4E3B;&#x8981;&#x5B9E;&#x4F53;&#x5305;&#x542B;&#x6709;&#x9650;&#x4E2A;&#x7D27;&#x5BC6;&#x5173;&#x8054;&#x4F46;&#x53C8;&#x4E0D;&#x662F;&#x5F88;&#x91CD;&#x8981;&#x7684;&#x5B9E;&#x4F53;&#xFF0C;&#x4F8B;&#x5982;&#x6211;&#x4EEC;&#x7684; <code>blogpost</code> &#x5BF9;&#x8C61;&#x5305;&#x542B;&#x8BC4;&#x8BBA;&#x5BF9;&#x8C61;&#x3002; &#x5728;&#x57FA;&#x4E8E;&#x8BC4;&#x8BBA;&#x7684;&#x5185;&#x5BB9;&#x67E5;&#x627E;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x65F6;&#xFF0C; <code>nested</code> &#x67E5;&#x8BE2;&#x6709;&#x5F88;&#x5927;&#x7684;&#x7528;&#x5904;&#xFF0C;&#x5E76;&#x4E14;&#x53EF;&#x4EE5;&#x63D0;&#x4F9B;&#x66F4;&#x5FEB;&#x7684;&#x67E5;&#x8BE2;&#x6548;&#x7387;&#x3002;</p>
<p>&#x5D4C;&#x5957;&#x6A21;&#x578B;&#x7684;&#x7F3A;&#x70B9;&#x5982;&#x4E0B;&#xFF1A;</p>
<ul>
<li>&#x5F53;&#x5BF9;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x505A;&#x589E;&#x52A0;&#x3001;&#x4FEE;&#x6539;&#x6216;&#x8005;&#x5220;&#x9664;&#x65F6;&#xFF0C;&#x6574;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x8981;&#x91CD;&#x65B0;&#x88AB;&#x7D22;&#x5F15;&#x3002;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x8D8A;&#x591A;&#xFF0C;&#x8FD9;&#x5E26;&#x6765;&#x7684;&#x6210;&#x672C;&#x5C31;&#x8D8A;&#x5927;&#x3002;</li>
<li>&#x67E5;&#x8BE2;&#x7ED3;&#x679C;&#x8FD4;&#x56DE;&#x7684;&#x662F;&#x6574;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x800C;&#x4E0D;&#x4EC5;&#x4EC5;&#x662F;&#x5339;&#x914D;&#x7684;&#x5D4C;&#x5957;&#x6587;&#x6863;&#x3002;&#x5C3D;&#x7BA1;&#x76EE;&#x524D;&#x6709;&#x8BA1;&#x5212;&#x652F;&#x6301;&#x53EA;&#x8FD4;&#x56DE;&#x6839;&#x6587;&#x6863;&#x4E2D;&#x6700;&#x4F73;&#x5339;&#x914D;&#x7684;&#x5D4C;&#x5957;&#x6587;&#x6863;&#xFF0C;&#x4F46;&#x76EE;&#x524D;&#x8FD8;&#x4E0D;&#x652F;&#x6301;&#x3002;</li>
</ul>
<p>&#x6709;&#x65F6;&#x4F60;&#x9700;&#x8981;&#x5728;&#x4E3B;&#x6587;&#x6863;&#x548C;&#x5176;&#x5173;&#x8054;&#x5B9E;&#x4F53;&#x4E4B;&#x95F4;&#x505A;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x7684;&#x9694;&#x79BB;&#x8BBE;&#x8BA1;&#x3002;&#x8FD9;&#x4E2A;&#x9694;&#x79BB;&#x662F;&#x7531; <em>&#x7236;&#x5B50;&#x5173;&#x8054;</em> &#x63D0;&#x4F9B;&#x7684;&#x3002;</p>
<h2 id="&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;"><a name="&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;  </h2>
<p>&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863; &#x5728;&#x5B9E;&#x8D28;&#x4E0A;&#x7C7B;&#x4F3C;&#x4E8E; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-objects.html" target="_blank">nested model</a> &#xFF1A;&#x5141;&#x8BB8;&#x5C06;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x5B9E;&#x4F53;&#x548C;&#x53E6;&#x5916;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x5B9E;&#x4F53;&#x5173;&#x8054;&#x8D77;&#x6765;&#x3002; &#x800C;&#x8FD9;&#x4E24;&#x79CD;&#x7C7B;&#x578B;&#x7684;&#x4E3B;&#x8981;&#x533A;&#x522B;&#x662F;&#xFF1A;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-objects.html" target="_blank"><code>nested</code> objects</a> &#x6587;&#x6863;&#x4E2D;&#xFF0C;&#x6240;&#x6709;&#x5BF9;&#x8C61;&#x90FD;&#x662F;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4E2D;&#xFF0C;&#x800C;&#x5728;&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;&#x4E2D;&#xFF0C;&#x7236;&#x5BF9;&#x8C61;&#x548C;&#x5B50;&#x5BF9;&#x8C61;&#x90FD;&#x662F;&#x5B8C;&#x5168;&#x72EC;&#x7ACB;&#x7684;&#x6587;&#x6863;&#x3002;</p>
<p>&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x7684;&#x4E3B;&#x8981;&#x4F5C;&#x7528;&#x662F;&#x5141;&#x8BB8;&#x628A;&#x4E00;&#x4E2A; type &#x7684;&#x6587;&#x6863;&#x548C;&#x53E6;&#x5916;&#x4E00;&#x4E2A; type &#x7684;&#x6587;&#x6863;&#x5173;&#x8054;&#x8D77;&#x6765;&#xFF0C;&#x6784;&#x6210;&#x4E00;&#x5BF9;&#x591A;&#x7684;&#x5173;&#x7CFB;&#xFF1A;&#x4E00;&#x4E2A;&#x7236;&#x6587;&#x6863;&#x53EF;&#x4EE5;&#x5BF9;&#x5E94;&#x591A;&#x4E2A;&#x5B50;&#x6587;&#x6863; &#x3002;&#x4E0E; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-objects.html" target="_blank"><code>nested</code> objects</a> &#x76F8;&#x6BD4;&#xFF0C;&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x7684;&#x4E3B;&#x8981;&#x4F18;&#x52BF;&#x6709;&#xFF1A;</p>
<ul>
<li>&#x66F4;&#x65B0;&#x7236;&#x6587;&#x6863;&#x65F6;&#xFF0C;&#x4E0D;&#x4F1A;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x5B50;&#x6587;&#x6863;&#x3002;</li>
<li>&#x521B;&#x5EFA;&#xFF0C;&#x4FEE;&#x6539;&#x6216;&#x5220;&#x9664;&#x5B50;&#x6587;&#x6863;&#x65F6;&#xFF0C;&#x4E0D;&#x4F1A;&#x5F71;&#x54CD;&#x7236;&#x6587;&#x6863;&#x6216;&#x5176;&#x4ED6;&#x5B50;&#x6587;&#x6863;&#x3002;&#x8FD9;&#x4E00;&#x70B9;&#x5728;&#x8FD9;&#x79CD;&#x573A;&#x666F;&#x4E0B;&#x5C24;&#x5176;&#x6709;&#x7528;&#xFF1A;&#x5B50;&#x6587;&#x6863;&#x6570;&#x91CF;&#x8F83;&#x591A;&#xFF0C;&#x5E76;&#x4E14;&#x5B50;&#x6587;&#x6863;&#x521B;&#x5EFA;&#x548C;&#x4FEE;&#x6539;&#x7684;&#x9891;&#x7387;&#x9AD8;&#x65F6;&#x3002;</li>
<li>&#x5B50;&#x6587;&#x6863;&#x53EF;&#x4EE5;&#x4F5C;&#x4E3A;&#x641C;&#x7D22;&#x7ED3;&#x679C;&#x72EC;&#x7ACB;&#x8FD4;&#x56DE;&#x3002;</li>
</ul>
<p>Elasticsearch &#x7EF4;&#x62A4;&#x4E86;&#x4E00;&#x4E2A;&#x7236;&#x6587;&#x6863;&#x548C;&#x5B50;&#x6587;&#x6863;&#x7684;&#x6620;&#x5C04;&#x5173;&#x7CFB;&#xFF0C;&#x5F97;&#x76CA;&#x4E8E;&#x8FD9;&#x4E2A;&#x6620;&#x5C04;&#xFF0C;&#x7236;-&#x5B50;&#x6587;&#x6863;&#x5173;&#x8054;&#x67E5;&#x8BE2;&#x64CD;&#x4F5C;&#x975E;&#x5E38;&#x5FEB;&#x3002;&#x4F46;&#x662F;&#x8FD9;&#x4E2A;&#x6620;&#x5C04;&#x4E5F;&#x5BF9;&#x7236;-&#x5B50;&#x6587;&#x6863;&#x5173;&#x7CFB;&#x6709;&#x4E2A;&#x9650;&#x5236;&#x6761;&#x4EF6;&#xFF1A;&#x7236;&#x6587;&#x6863;&#x548C;&#x5176;&#x6240;&#x6709;&#x5B50;&#x6587;&#x6863;&#xFF0C;&#x90FD;&#x5FC5;&#x987B;&#x8981;&#x5B58;&#x50A8;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E2D;&#x3002;</p>
<p>&#x7236;-&#x5B50;&#x6587;&#x6863;ID&#x6620;&#x5C04;&#x5B58;&#x50A8;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/docvalues.html" target="_blank">Doc Values</a> &#x4E2D;&#x3002;&#x5F53;&#x6620;&#x5C04;&#x5B8C;&#x5168;&#x5728;&#x5185;&#x5B58;&#x4E2D;&#x65F6;&#xFF0C; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/docvalues.html" target="_blank">Doc Values</a> &#x63D0;&#x4F9B;&#x5BF9;&#x6620;&#x5C04;&#x7684;&#x5FEB;&#x901F;&#x5904;&#x7406;&#x80FD;&#x529B;&#xFF0C;&#x53E6;&#x4E00;&#x65B9;&#x9762;&#x5F53;&#x6620;&#x5C04;&#x975E;&#x5E38;&#x5927;&#x65F6;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x6EA2;&#x51FA;&#x5230;&#x78C1;&#x76D8;&#x63D0;&#x4F9B;&#x8DB3;&#x591F;&#x7684;&#x6269;&#x5C55;&#x80FD;&#x529B;</p>
<h3 id="&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;&#x6620;&#x5C04;"><a name="&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;&#x6620;&#x5C04;" class="anchor-navigation-ex-anchor" href="#&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;&#x6620;&#x5C04;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x7236;-&#x5B50;&#x5173;&#x7CFB;&#x6587;&#x6863;&#x6620;&#x5C04;  </h3>
<p>&#x5EFA;&#x7ACB;&#x7236;-&#x5B50;&#x6587;&#x6863;&#x6620;&#x5C04;&#x5173;&#x7CFB;&#x65F6;&#x53EA;&#x9700;&#x8981;&#x6307;&#x5B9A;&#x67D0;&#x4E00;&#x4E2A;&#x6587;&#x6863; type &#x662F;&#x53E6;&#x4E00;&#x4E2A;&#x6587;&#x6863; type &#x7684;&#x7236;&#x4EB2;&#x3002; &#x8BE5;&#x5173;&#x7CFB;&#x53EF;&#x4EE5;&#x5728;&#x5982;&#x4E0B;&#x4E24;&#x4E2A;&#x65F6;&#x95F4;&#x70B9;&#x8BBE;&#x7F6E;&#xFF1A;1&#xFF09;&#x521B;&#x5EFA;&#x7D22;&#x5F15;&#x65F6;&#xFF1B;2&#xFF09;&#x5728;&#x5B50;&#x6587;&#x6863; type &#x521B;&#x5EFA;&#x4E4B;&#x524D;&#x66F4;&#x65B0;&#x7236;&#x6587;&#x6863;&#x7684; mapping&#x3002;</p>
<p>&#x4E3E;&#x4F8B;&#x8BF4;&#x660E;&#xFF0C;&#x6709;&#x4E00;&#x4E2A;&#x516C;&#x53F8;&#x5728;&#x591A;&#x4E2A;&#x57CE;&#x5E02;&#x6709;&#x5206;&#x516C;&#x53F8;&#xFF0C;&#x5E76;&#x4E14;&#x6BCF;&#x4E00;&#x4E2A;&#x5206;&#x516C;&#x53F8;&#x4E0B;&#x9762;&#x90FD;&#x6709;&#x5F88;&#x591A;&#x5458;&#x5DE5;&#x3002;&#x6709;&#x8FD9;&#x6837;&#x7684;&#x9700;&#x6C42;&#xFF1A;&#x6309;&#x7167;&#x5206;&#x516C;&#x53F8;&#x3001;&#x5458;&#x5DE5;&#x7684;&#x7EF4;&#x5EA6;&#x53BB;&#x641C;&#x7D22;&#xFF0C;&#x5E76;&#x4E14;&#x628A;&#x5458;&#x5DE5;&#x548C;&#x4ED6;&#x4EEC;&#x5DE5;&#x4F5C;&#x7684;&#x5206;&#x516C;&#x53F8;&#x8054;&#x7CFB;&#x8D77;&#x6765;&#x3002;&#x9488;&#x5BF9;&#x8BE5;&#x9700;&#x6C42;&#xFF0C;&#x7528;&#x5D4C;&#x5957;&#x6A21;&#x578B;&#x662F;&#x65E0;&#x6CD5;&#x5B9E;&#x73B0;&#x7684;&#x3002;&#x5F53;&#x7136;&#xFF0C;&#x5982;&#x679C;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/application-joins.html" target="_blank">application-side-joins</a> &#x6216;&#x8005; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/denormalization.html" target="_blank">data denormalization</a> &#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x5B9E;&#x73B0;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x4E3A;&#x4E86;&#x6F14;&#x793A;&#x7684;&#x76EE;&#x7684;&#xFF0C;&#x5728;&#x8FD9;&#x91CC;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x7236;-&#x5B50;&#x6587;&#x6863;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x9700;&#x8981;&#x544A;&#x8BC9;Elasticsearch&#xFF0C;&#x5728;&#x521B;&#x5EFA;&#x5458;&#x5DE5; <code>employee</code> &#x6587;&#x6863; type &#x65F6;&#xFF0C;&#x6307;&#x5B9A;&#x5206;&#x516C;&#x53F8; <code>branch</code> &#x7684;&#x6587;&#x6863; type &#x4E3A;&#x5176;&#x7236;&#x4EB2;&#x3002;</p>
<pre><code class="lang-json">PUT /company
{
  <span class="hljs-string">&quot;mappings&quot;</span>: {
    <span class="hljs-string">&quot;branch&quot;</span>: {},
    <span class="hljs-string">&quot;employee&quot;</span>: {
      <span class="hljs-string">&quot;_parent&quot;</span>: {
        <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;branch&quot;</span>             &lt;<span class="hljs-number">1</span>&gt;
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>employee</code> &#x6587;&#x6863; &#x662F; <code>branch</code> &#x6587;&#x6863;&#x7684;&#x5B50;&#x6587;&#x6863;&#x3002;  </p>
</blockquote>
<h3 id="&#x6784;&#x5EFA;&#x7236;&#x5B50;&#x6587;&#x6863;&#x7D22;&#x5F15;"><a name="&#x6784;&#x5EFA;&#x7236;&#x5B50;&#x6587;&#x6863;&#x7D22;&#x5F15;" class="anchor-navigation-ex-anchor" href="#&#x6784;&#x5EFA;&#x7236;&#x5B50;&#x6587;&#x6863;&#x7D22;&#x5F15;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6784;&#x5EFA;&#x7236;-&#x5B50;&#x6587;&#x6863;&#x7D22;&#x5F15;  </h3>
<p>&#x4E3A;&#x7236;&#x6587;&#x6863;&#x521B;&#x5EFA;&#x7D22;&#x5F15;&#x4E0E;&#x4E3A;&#x666E;&#x901A;&#x6587;&#x6863;&#x521B;&#x5EFA;&#x7D22;&#x5F15;&#x6CA1;&#x6709;&#x533A;&#x522B;&#x3002;&#x7236;&#x6587;&#x6863;&#x5E76;&#x4E0D;&#x9700;&#x8981;&#x77E5;&#x9053;&#x5B83;&#x6709;&#x54EA;&#x4E9B;&#x5B50;&#x6587;&#x6863;&#x3002;</p>
<pre><code class="lang-json">POST /company/branch/_bulk
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;london&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;London Westminster&quot;</span>, <span class="hljs-string">&quot;city&quot;</span>: <span class="hljs-string">&quot;London&quot;</span>, <span class="hljs-string">&quot;country&quot;</span>: <span class="hljs-string">&quot;UK&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;liverpool&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Liverpool Central&quot;</span>, <span class="hljs-string">&quot;city&quot;</span>: <span class="hljs-string">&quot;Liverpool&quot;</span>, <span class="hljs-string">&quot;country&quot;</span>: <span class="hljs-string">&quot;UK&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;paris&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Champs &#xC9;lys&#xE9;es&quot;</span>, <span class="hljs-string">&quot;city&quot;</span>: <span class="hljs-string">&quot;Paris&quot;</span>, <span class="hljs-string">&quot;country&quot;</span>: <span class="hljs-string">&quot;France&quot;</span> }
</code></pre>
<p>&#x521B;&#x5EFA;&#x5B50;&#x6587;&#x6863;&#x65F6;&#xFF0C;&#x7528;&#x6237;&#x5FC5;&#x987B;&#x8981;&#x901A;&#x8FC7; <code>parent</code> &#x53C2;&#x6570;&#x6765;&#x6307;&#x5B9A;&#x8BE5;&#x5B50;&#x6587;&#x6863;&#x7684;&#x7236;&#x6587;&#x6863; ID&#xFF1A;</p>
<pre><code class="lang-json">PUT /company/employee/<span class="hljs-number">1</span>?parent=london        &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;name&quot;</span>:  <span class="hljs-string">&quot;Alice Smith&quot;</span>,
  <span class="hljs-string">&quot;dob&quot;</span>:   <span class="hljs-string">&quot;1970-10-24&quot;</span>,
  <span class="hljs-string">&quot;hobby&quot;</span>: <span class="hljs-string">&quot;hiking&quot;</span>
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x5F53;&#x524D; <code>employee</code> &#x6587;&#x6863;&#x7684;&#x7236;&#x6587;&#x6863; ID &#x662F; <code>london</code> &#x3002;</p>
</blockquote>
<p>&#x7236;&#x6587;&#x6863; ID &#x6709;&#x4E24;&#x4E2A;&#x4F5C;&#x7528;&#xFF1A;&#x521B;&#x5EFA;&#x4E86;&#x7236;&#x6587;&#x6863;&#x548C;&#x5B50;&#x6587;&#x6863;&#x4E4B;&#x95F4;&#x7684;&#x5173;&#x7CFB;&#xFF0C;&#x5E76;&#x4E14;&#x4FDD;&#x8BC1;&#x4E86;&#x7236;&#x6587;&#x6863;&#x548C;&#x5B50;&#x6587;&#x6863;&#x90FD;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E0A;&#x3002;</p>
<p>&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/routing-value.html" target="_blank">&#x8DEF;&#x7531;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x5230;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E2D;</a> &#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x89E3;&#x91CA;&#x4E86; Elasticsearch &#x5982;&#x4F55;&#x901A;&#x8FC7;&#x8DEF;&#x7531;&#x503C;&#x6765;&#x51B3;&#x5B9A;&#x8BE5;&#x6587;&#x6863;&#x5C5E;&#x4E8E;&#x54EA;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x8DEF;&#x7531;&#x503C;&#x9ED8;&#x8BA4;&#x4E3A;&#x8BE5;&#x6587;&#x6863;&#x7684; <code>_id</code> &#x3002;&#x5206;&#x7247;&#x8DEF;&#x7531;&#x7684;&#x8BA1;&#x7B97;&#x516C;&#x5F0F;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code>shard = hash(routing) % number_of_primary_shards
</code></pre><p>&#x5982;&#x679C;&#x6307;&#x5B9A;&#x4E86;&#x7236;&#x6587;&#x6863;&#x7684; ID&#xFF0C;&#x90A3;&#x4E48;&#x5C31;&#x4F1A;&#x4F7F;&#x7528;&#x7236;&#x6587;&#x6863;&#x7684; ID &#x8FDB;&#x884C;&#x8DEF;&#x7531;&#xFF0C;&#x800C;&#x4E0D;&#x4F1A;&#x4F7F;&#x7528;&#x5F53;&#x524D;&#x6587;&#x6863; <code>_id</code> &#x3002;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x5982;&#x679C;&#x7236;&#x6587;&#x6863;&#x548C;&#x5B50;&#x6587;&#x6863;&#x90FD;&#x4F7F;&#x7528;&#x76F8;&#x540C;&#x7684;&#x503C;&#x8FDB;&#x884C;&#x8DEF;&#x7531;&#xFF0C;&#x90A3;&#x4E48;&#x7236;&#x6587;&#x6863;&#x548C;&#x5B50;&#x6587;&#x6863;&#x90FD;&#x4F1A;&#x786E;&#x5B9A;&#x5206;&#x5E03;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E0A;&#x3002;</p>
<p>&#x5728;&#x6267;&#x884C;&#x5355;&#x6587;&#x6863;&#x7684;&#x8BF7;&#x6C42;&#x65F6;&#x9700;&#x8981;&#x6307;&#x5B9A;&#x7236;&#x6587;&#x6863;&#x7684; ID&#xFF0C;&#x5355;&#x6587;&#x6863;&#x8BF7;&#x6C42;&#x5305;&#x62EC;&#xFF1A;&#x901A;&#x8FC7; <code>GET</code> &#x8BF7;&#x6C42;&#x83B7;&#x53D6;&#x4E00;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#xFF1B;&#x521B;&#x5EFA;&#x3001;&#x66F4;&#x65B0;&#x6216;&#x5220;&#x9664;&#x4E00;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x3002;&#x800C;&#x6267;&#x884C;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x65F6;&#x662F;&#x4E0D;&#x9700;&#x8981;&#x6307;&#x5B9A;&#x7236;&#x6587;&#x6863;&#x7684;ID&#xFF0C;&#x8FD9;&#x662F;&#x56E0;&#x4E3A;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x662F;&#x5411;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x5206;&#x7247;&#x53D1;&#x8D77;&#x8BF7;&#x6C42;&#xFF0C;&#x800C;&#x5355;&#x6587;&#x6863;&#x7684;&#x64CD;&#x4F5C;&#x662F;&#x53EA;&#x4F1A;&#x5411;&#x5B58;&#x50A8;&#x8BE5;&#x6587;&#x6863;&#x7684;&#x5206;&#x7247;&#x53D1;&#x9001;&#x8BF7;&#x6C42;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x5982;&#x679C;&#x64CD;&#x4F5C;&#x5355;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x65F6;&#x4E0D;&#x6307;&#x5B9A;&#x7236;&#x6587;&#x6863;&#x7684; ID&#xFF0C;&#x90A3;&#x4E48;&#x5F88;&#x6709;&#x53EF;&#x80FD;&#x4F1A;&#x628A;&#x8BF7;&#x6C42;&#x53D1;&#x9001;&#x5230;&#x9519;&#x8BEF;&#x7684;&#x5206;&#x7247;&#x4E0A;&#x3002;</p>
<p>&#x7236;&#x6587;&#x6863;&#x7684; ID &#x5E94;&#x8BE5;&#x5728; <code>bulk</code> API &#x4E2D;&#x6307;&#x5B9A;</p>
<pre><code class="lang-json">POST /company/employee/_bulk
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-number">2</span>, <span class="hljs-string">&quot;parent&quot;</span>: <span class="hljs-string">&quot;london&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Mark Thomas&quot;</span>, <span class="hljs-string">&quot;dob&quot;</span>: <span class="hljs-string">&quot;1982-05-16&quot;</span>, <span class="hljs-string">&quot;hobby&quot;</span>: <span class="hljs-string">&quot;diving&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-number">3</span>, <span class="hljs-string">&quot;parent&quot;</span>: <span class="hljs-string">&quot;liverpool&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Barry Smith&quot;</span>, <span class="hljs-string">&quot;dob&quot;</span>: <span class="hljs-string">&quot;1979-04-01&quot;</span>, <span class="hljs-string">&quot;hobby&quot;</span>: <span class="hljs-string">&quot;hiking&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-number">4</span>, <span class="hljs-string">&quot;parent&quot;</span>: <span class="hljs-string">&quot;paris&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Adrien Grand&quot;</span>, <span class="hljs-string">&quot;dob&quot;</span>: <span class="hljs-string">&quot;1987-05-11&quot;</span>, <span class="hljs-string">&quot;hobby&quot;</span>: <span class="hljs-string">&quot;horses&quot;</span> }
</code></pre>
<blockquote>
<p> <img src="assets/warning.png" alt="&#x8B66;&#x544A;">  &#x5982;&#x679C;&#x4F60;&#x60F3;&#x8981;&#x6539;&#x53D8;&#x4E00;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x7684; <code>parent</code> &#x503C;&#xFF0C;&#x4EC5;&#x901A;&#x8FC7;&#x66F4;&#x65B0;&#x8FD9;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x662F;&#x4E0D;&#x591F;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x65B0;&#x7684;&#x7236;&#x6587;&#x6863;&#x6709;&#x53EF;&#x80FD;&#x5728;&#x53E6;&#x5916;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E0A;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x4F60;&#x5FC5;&#x987B;&#x8981;&#x5148;&#x628A;&#x5B50;&#x6587;&#x6863;&#x5220;&#x9664;&#xFF0C;&#x7136;&#x540E;&#x518D;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x8FD9;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x3002;  </p>
</blockquote>
<h3 id="&#x901A;&#x8FC7;&#x5B50;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;"><a name="&#x901A;&#x8FC7;&#x5B50;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x901A;&#x8FC7;&#x5B50;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x901A;&#x8FC7;&#x5B50;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;</h3>
<p><code>has_child</code> &#x7684;&#x67E5;&#x8BE2;&#x548C;&#x8FC7;&#x6EE4;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5B50;&#x6587;&#x6863;&#x7684;&#x5185;&#x5BB9;&#x6765;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x6839;&#x636E;&#x5982;&#x4E0B;&#x67E5;&#x8BE2;&#xFF0C;&#x53EF;&#x67E5;&#x51FA;&#x6240;&#x6709;80&#x540E;&#x5458;&#x5DE5;&#x6240;&#x5728;&#x7684;&#x5206;&#x516C;&#x53F8;&#xFF1A;</p>
<pre><code class="lang-json">GET /company/branch/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;has_child&quot;</span>: {
      <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;employee&quot;</span>,
      <span class="hljs-string">&quot;query&quot;</span>: {
        <span class="hljs-string">&quot;range&quot;</span>: {
          <span class="hljs-string">&quot;dob&quot;</span>: {
            <span class="hljs-string">&quot;gte&quot;</span>: <span class="hljs-string">&quot;1980-01-01&quot;</span>
          }
        }
      }
    }
  }
}
</code></pre>
<p>&#x7C7B;&#x4F3C;&#x4E8E; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-query.html" target="_blank"><code>nested</code> query</a> &#xFF0C;<code>has_child</code> &#x67E5;&#x8BE2;&#x53EF;&#x4EE5;&#x5339;&#x914D;&#x591A;&#x4E2A;&#x5B50;&#x6587;&#x6863; &#xFF0C;&#x5E76;&#x4E14;&#x6BCF;&#x4E00;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x7684;&#x8BC4;&#x5206;&#x90FD;&#x4E0D;&#x540C;&#x3002;&#x4F46;&#x662F;&#x7531;&#x4E8E;&#x6BCF;&#x4E00;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x90FD;&#x5E26;&#x6709;&#x8BC4;&#x5206;&#xFF0C;&#x8FD9;&#x4E9B;&#x8BC4;&#x5206;&#x5982;&#x4F55;&#x89C4;&#x7EA6;&#x6210;&#x7236;&#x6587;&#x6863;&#x7684;&#x603B;&#x5F97;&#x5206;&#x53D6;&#x51B3;&#x4E8E; <code>score_mode</code> &#x8FD9;&#x4E2A;&#x53C2;&#x6570;&#x3002;&#x8BE5;&#x53C2;&#x6570;&#x6709;&#x591A;&#x79CD;&#x53D6;&#x503C;&#x7B56;&#x7565;&#xFF1A;&#x9ED8;&#x8BA4;&#x4E3A; <code>none</code> &#xFF0C;&#x4F1A;&#x5FFD;&#x7565;&#x5B50;&#x6587;&#x6863;&#x7684;&#x8BC4;&#x5206;&#xFF0C;&#x5E76;&#x4E14;&#x4F1A;&#x7ED9;&#x7236;&#x6587;&#x6863;&#x8BC4;&#x5206;&#x8BBE;&#x7F6E;&#x4E3A; <code>1.0</code> &#xFF1B; &#x9664;&#x6B64;&#x4EE5;&#x5916;&#x8FD8;&#x53EF;&#x4EE5;&#x8BBE;&#x7F6E;&#x6210; <code>avg</code> &#x3001; <code>min</code> &#x3001; <code>max</code> &#x548C; <code>sum</code> &#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x67E5;&#x8BE2;&#x5C06;&#x4F1A;&#x540C;&#x65F6;&#x8FD4;&#x56DE; <code>london</code> &#x548C; <code>liverpool</code> &#xFF0C;&#x4E0D;&#x8FC7;&#x7531;&#x4E8E; <code>Alice Smith</code> &#x8981;&#x6BD4; <code>Barry Smith</code> &#x66F4;&#x52A0;&#x5339;&#x914D;&#x67E5;&#x8BE2;&#x6761;&#x4EF6;&#xFF0C;&#x56E0;&#x6B64; <code>london</code> &#x4F1A;&#x5F97;&#x5230;&#x4E00;&#x4E2A;&#x66F4;&#x9AD8;&#x7684;&#x8BC4;&#x5206;&#x3002;</p>
<pre><code class="lang-json">GET /company/branch/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;has_child&quot;</span>: {
      <span class="hljs-string">&quot;type&quot;</span>:       <span class="hljs-string">&quot;employee&quot;</span>,
      <span class="hljs-string">&quot;score_mode&quot;</span>: <span class="hljs-string">&quot;max&quot;</span>,
      <span class="hljs-string">&quot;query&quot;</span>: {
        <span class="hljs-string">&quot;match&quot;</span>: {
          <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Alice Smith&quot;</span>
        }
      }
    }
  }
}
</code></pre>
<p><img src="assets/tip-1552461072957.png" alt="&#x63D0;&#x793A;"></p>
<p><code>score_mode</code> &#x4E3A;&#x9ED8;&#x8BA4;&#x7684; <code>none</code> &#x65F6;&#xFF0C;&#x4F1A;&#x663E;&#x8457;&#x5730;&#x6BD4;&#x5176;&#x6A21;&#x5F0F;&#x8981;&#x5FEB;&#xFF0C;&#x8FD9;&#x662F;&#x56E0;&#x4E3A;Elasticsearch&#x4E0D;&#x9700;&#x8981;&#x8BA1;&#x7B97;&#x6BCF;&#x4E00;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x7684;&#x8BC4;&#x5206;&#x3002;&#x53EA;&#x6709;&#x5F53;&#x4F60;&#x771F;&#x6B63;&#x9700;&#x8981;&#x5173;&#x5FC3;&#x8BC4;&#x5206;&#x7ED3;&#x679C;&#x65F6;&#xFF0C;&#x624D;&#x9700;&#x8981;&#x4E3A; <code>score_mode</code> &#x8BBE;&#x503C;&#xFF0C;&#x4F8B;&#x5982;&#x8BBE;&#x6210; <code>avg</code> &#x3001; <code>min</code> &#x3001; <code>max</code> &#x6216; <code>sum</code> &#x3002;</p>
<p><strong>min_children &#x548C; max_children</strong></p>
<p><code>has_child</code> &#x7684;&#x67E5;&#x8BE2;&#x548C;&#x8FC7;&#x6EE4;&#x90FD;&#x53EF;&#x4EE5;&#x63A5;&#x53D7;&#x8FD9;&#x4E24;&#x4E2A;&#x53C2;&#x6570;&#xFF1A;<code>min_children</code> &#x548C; <code>max_children</code> &#x3002; &#x4F7F;&#x7528;&#x8FD9;&#x4E24;&#x4E2A;&#x53C2;&#x6570;&#x65F6;&#xFF0C;&#x53EA;&#x6709;&#x5F53;&#x5B50;&#x6587;&#x6863;&#x6570;&#x91CF;&#x5728;&#x6307;&#x5B9A;&#x8303;&#x56F4;&#x5185;&#x65F6;&#xFF0C;&#x624D;&#x4F1A;&#x8FD4;&#x56DE;&#x7236;&#x6587;&#x6863;&#x3002;</p>
<p>&#x5982;&#x4E0B;&#x67E5;&#x8BE2;&#x53EA;&#x4F1A;&#x8FD4;&#x56DE;&#x81F3;&#x5C11;&#x6709;&#x4E24;&#x4E2A;&#x96C7;&#x5458;&#x7684;&#x5206;&#x516C;&#x53F8;&#xFF1A;</p>
<pre><code class="lang-json">GET /company/branch/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;has_child&quot;</span>: {
      <span class="hljs-string">&quot;type&quot;</span>:         <span class="hljs-string">&quot;employee&quot;</span>,
      <span class="hljs-string">&quot;min_children&quot;</span>: <span class="hljs-number">2</span>,               <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
      &quot;query&quot;: {
        &quot;match_all&quot;: {}
      }
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1-.png" alt="img">  &#x81F3;&#x5C11;&#x6709;&#x4E24;&#x4E2A;&#x96C7;&#x5458;&#x7684;&#x5206;&#x516C;&#x53F8;&#x624D;&#x4F1A;&#x7B26;&#x5408;&#x67E5;&#x8BE2;&#x6761;&#x4EF6;&#x3002;   </p>
</blockquote>
<p>&#x5E26;&#x6709; <code>min_children</code> &#x548C; <code>max_children</code> &#x53C2;&#x6570;&#x7684; <code>has_child</code> &#x67E5;&#x8BE2;&#x6216;&#x8FC7;&#x6EE4;&#xFF0C;&#x548C;&#x5141;&#x8BB8;&#x8BC4;&#x5206;&#x7684; <code>has_child</code> &#x67E5;&#x8BE2;&#x7684;&#x6027;&#x80FD;&#x975E;&#x5E38;&#x63A5;&#x8FD1;&#x3002;</p>
<hr>
<p>&gt;</p>
<blockquote>
<p> <strong>has_child Filter</strong></p>
<p> <code>has_child</code> &#x67E5;&#x8BE2;&#x548C;&#x8FC7;&#x6EE4;&#x5728;&#x8FD0;&#x884C;&#x673A;&#x5236;&#x4E0A;&#x7C7B;&#x4F3C;&#xFF0C; &#x533A;&#x522B;&#x662F; <code>has_child</code> &#x8FC7;&#x6EE4;&#x4E0D;&#x652F;&#x6301; <code>score_mode</code> &#x53C2;&#x6570;&#x3002;<code>has_child</code> &#x8FC7;&#x6EE4;&#x4EC5;&#x7528;&#x4E8E;&#x7B5B;&#x9009;&#x5185;&#x5BB9;--&#x5982;&#x5185;&#x90E8;&#x7684;&#x4E00;&#x4E2A; <code>filtered</code> &#x67E5;&#x8BE2;--&#x548C;&#x5176;&#x4ED6;&#x8FC7;&#x6EE4;&#x884C;&#x4E3A;&#x7C7B;&#x4F3C;&#xFF1A;&#x5305;&#x542B;&#x6216;&#x8005;&#x6392;&#x9664;&#xFF0C;&#x4F46;&#x6CA1;&#x6709;&#x8FDB;&#x884C;&#x8BC4;&#x5206;&#x3002;</p>
<h2 id="haschild-&#x8FC7;&#x6EE4;&#x7684;&#x7ED3;&#x679C;&#x6CA1;&#x6709;&#x88AB;&#x7F13;&#x5B58;&#xFF0C;&#x4F46;&#x662F;-haschild-&#x8FC7;&#x6EE4;&#x5185;&#x90E8;&#x7684;&#x8FC7;&#x6EE4;&#x65B9;&#x6CD5;&#x9002;&#x7528;&#x4E8E;&#x901A;&#x5E38;&#x7684;&#x7F13;&#x5B58;&#x89C4;&#x5219;&#x3002;"><a name="haschild-&#x8FC7;&#x6EE4;&#x7684;&#x7ED3;&#x679C;&#x6CA1;&#x6709;&#x88AB;&#x7F13;&#x5B58;&#xFF0C;&#x4F46;&#x662F;-haschild-&#x8FC7;&#x6EE4;&#x5185;&#x90E8;&#x7684;&#x8FC7;&#x6EE4;&#x65B9;&#x6CD5;&#x9002;&#x7528;&#x4E8E;&#x901A;&#x5E38;&#x7684;&#x7F13;&#x5B58;&#x89C4;&#x5219;&#x3002;" class="anchor-navigation-ex-anchor" href="#haschild-&#x8FC7;&#x6EE4;&#x7684;&#x7ED3;&#x679C;&#x6CA1;&#x6709;&#x88AB;&#x7F13;&#x5B58;&#xFF0C;&#x4F46;&#x662F;-haschild-&#x8FC7;&#x6EE4;&#x5185;&#x90E8;&#x7684;&#x8FC7;&#x6EE4;&#x65B9;&#x6CD5;&#x9002;&#x7528;&#x4E8E;&#x901A;&#x5E38;&#x7684;&#x7F13;&#x5B58;&#x89C4;&#x5219;&#x3002;"><i class="fa fa-link" aria-hidden="true"></i></a> has_child &#x8FC7;&#x6EE4;&#x7684;&#x7ED3;&#x679C;&#x6CA1;&#x6709;&#x88AB;&#x7F13;&#x5B58;&#xFF0C;&#x4F46;&#x662F; has_child &#x8FC7;&#x6EE4;&#x5185;&#x90E8;&#x7684;&#x8FC7;&#x6EE4;&#x65B9;&#x6CD5;&#x9002;&#x7528;&#x4E8E;&#x901A;&#x5E38;&#x7684;&#x7F13;&#x5B58;&#x89C4;&#x5219;&#x3002;</h2>
</blockquote>
<h3 id="&#x901A;&#x8FC7;&#x7236;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x5B50;&#x6587;&#x6863;"><a name="&#x901A;&#x8FC7;&#x7236;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x5B50;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x901A;&#x8FC7;&#x7236;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x5B50;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x901A;&#x8FC7;&#x7236;&#x6587;&#x6863;&#x67E5;&#x8BE2;&#x5B50;&#x6587;&#x6863;</h3>
<p>&#x867D;&#x7136; <code>nested</code> &#x67E5;&#x8BE2;&#x53EA;&#x80FD;&#x8FD4;&#x56DE;&#x6700;&#x9876;&#x5C42;&#x7684;&#x6587;&#x6863; &#xFF0C;&#x4F46;&#x662F;&#x7236;&#x6587;&#x6863;&#x548C;&#x5B50;&#x6587;&#x6863;&#x672C;&#x8EAB;&#x662F;&#x5F7C;&#x6B64;&#x72EC;&#x7ACB;&#x5E76;&#x4E14;&#x53EF;&#x88AB;&#x5355;&#x72EC;&#x67E5;&#x8BE2;&#x7684;&#x3002;&#x6211;&#x4EEC;&#x4F7F;&#x7528; <code>has_child</code> &#x8BED;&#x53E5;&#x53EF;&#x4EE5;&#x57FA;&#x4E8E;&#x5B50;&#x6587;&#x6863;&#x6765;&#x67E5;&#x8BE2;&#x7236;&#x6587;&#x6863;&#xFF0C;&#x4F7F;&#x7528; <code>has_parent</code> &#x8BED;&#x53E5;&#x53EF;&#x4EE5;&#x57FA;&#x4E8E;&#x7236;&#x6587;&#x6863;&#x6765;&#x67E5;&#x8BE2;&#x5B50;&#x6587;&#x6863;&#x3002;</p>
<p><code>has_parent</code> &#x548C; <code>has_child</code> &#x975E;&#x5E38;&#x76F8;&#x4F3C;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x67E5;&#x8BE2;&#x5C06;&#x4F1A;&#x8FD4;&#x56DE;&#x6240;&#x6709;&#x5728; UK &#x5DE5;&#x4F5C;&#x7684;&#x96C7;&#x5458;&#xFF1A;</p>
<pre><code class="lang-json">GET /company/employee/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;has_parent&quot;</span>: {
      <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;branch&quot;</span>,              <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
      &quot;query&quot;: {
        &quot;match&quot;: {
          &quot;country&quot;: &quot;UK&quot;
        }
      }
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x8FD4;&#x56DE;&#x7236;&#x6587;&#x6863; <code>type</code> &#x662F; <code>branch</code> &#x7684;&#x6240;&#x6709;&#x5B50;&#x6587;&#x6863;  </p>
</blockquote>
<p><code>has_parent</code> &#x67E5;&#x8BE2;&#x4E5F;&#x652F;&#x6301; <code>score_mode</code> &#x8FD9;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x4F46;&#x662F;&#x8BE5;&#x53C2;&#x6570;&#x53EA;&#x652F;&#x6301;&#x4E24;&#x79CD;&#x503C;&#xFF1A; <code>none</code> &#xFF08;&#x9ED8;&#x8BA4;&#xFF09;&#x548C; <code>score</code> &#x3002;&#x6BCF;&#x4E2A;&#x5B50;&#x6587;&#x6863;&#x90FD;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x7236;&#x6587;&#x6863;&#xFF0C;&#x56E0;&#x6B64;&#x8FD9;&#x91CC;&#x4E0D;&#x5B58;&#x5728;&#x5C06;&#x591A;&#x4E2A;&#x8BC4;&#x5206;&#x89C4;&#x7EA6;&#x4E3A;&#x4E00;&#x4E2A;&#x7684;&#x60C5;&#x51B5;&#xFF0C; <code>score_mode</code> &#x7684;&#x53D6;&#x503C;&#x4EC5;&#x4E3A; <code>score</code> &#x548C; <code>none</code> &#x3002;</p>
<hr>
<blockquote>
<p> <strong>&#x4E0D;&#x5E26;&#x8BC4;&#x5206;&#x7684; has_parent &#x67E5;&#x8BE2;</strong></p>
<p> &#x5F53; <code>has_parent</code> &#x67E5;&#x8BE2;&#x7528;&#x4E8E;&#x975E;&#x8BC4;&#x5206;&#x6A21;&#x5F0F;&#xFF08;&#x6BD4;&#x5982; filter &#x67E5;&#x8BE2;&#x8BED;&#x53E5;&#xFF09;&#x65F6;&#xFF0C; <code>score_mode</code> &#x53C2;&#x6570;&#x5C31;&#x4E0D;&#x518D;&#x8D77;&#x4F5C;&#x7528;&#x4E86;&#x3002;&#x56E0;&#x4E3A;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x53EA;&#x662F;&#x7B80;&#x5355;&#x5730;&#x5305;&#x542B;&#x6216;&#x6392;&#x9664;&#x6587;&#x6863;&#xFF0C;&#x6CA1;&#x6709;&#x8BC4;&#x5206;&#xFF0C;&#x90A3;&#x4E48; <code>score_mode</code> &#x53C2;&#x6570;&#x4E5F;&#x5C31;&#x6CA1;&#x6709;&#x610F;&#x4E49;&#x4E86;&#x3002;</p>
<hr>
</blockquote>
<h3 id="&#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;"><a name="&#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;" class="anchor-navigation-ex-anchor" href="#&#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;</h3>
<p>&#x5728;&#x7236;-&#x5B50;&#x6587;&#x6863;&#x4E2D;&#x652F;&#x6301; <a href="http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-children-aggregation.html" target="_blank">&#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;</a>&#xFF0C;&#x8FD9;&#x4E00;&#x70B9;&#x548C; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-aggregation.html" target="_blank">&#x5D4C;&#x5957;&#x805A;&#x5408;</a> &#x7C7B;&#x4F3C;&#x3002;&#x4F46;&#x662F;&#xFF0C;&#x5BF9;&#x4E8E;&#x7236;&#x6587;&#x6863;&#x7684;&#x805A;&#x5408;&#x67E5;&#x8BE2;&#x662F;&#x4E0D;&#x652F;&#x6301;&#x7684;&#xFF08;&#x548C; <code>reverse_nested</code> &#x7C7B;&#x4F3C;&#xFF09;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x6765;&#x6F14;&#x793A;&#x6309;&#x7167;&#x56FD;&#x5BB6;&#x7EF4;&#x5EA6;&#x67E5;&#x770B;&#x6700;&#x53D7;&#x96C7;&#x5458;&#x6B22;&#x8FCE;&#x7684;&#x4E1A;&#x4F59;&#x7231;&#x597D;&#xFF1A;</p>
<pre><code class="lang-json">GET /company/branch/_search
{
  <span class="hljs-string">&quot;size&quot;</span> : <span class="hljs-number">0</span>,
  <span class="hljs-string">&quot;aggs&quot;</span>: {
    <span class="hljs-string">&quot;country&quot;</span>: {
      <span class="hljs-string">&quot;terms&quot;</span>: {                     &lt;1&gt;
        &quot;field&quot;: &quot;country&quot;
      },
      &quot;aggs&quot;: {
        &quot;employees&quot;: {
          &quot;children&quot;: {              &lt;2&gt;
            &quot;type&quot;: &quot;employee&quot;
          },
          &quot;aggs&quot;: {
            &quot;hobby&quot;: {
              &quot;terms&quot;: {             &lt;3&gt;
                &quot;field&quot;: &quot;hobby&quot;
              }
            }
          }
        }
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>country</code> &#x662F; <code>branch</code> &#x6587;&#x6863;&#x7684;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  &#x5B50;&#x6587;&#x6863;&#x805A;&#x5408;&#x67E5;&#x8BE2;&#x901A;&#x8FC7; <code>employee</code> type &#x7684;&#x5B50;&#x6587;&#x6863;&#x5C06;&#x5176;&#x7236;&#x6587;&#x6863;&#x805A;&#x5408;&#x5728;&#x4E00;&#x8D77;&#x3002;   </p>
<p> <img src="assets/3.png" alt="img">  <code>hobby</code> &#x662F; <code>employee</code> &#x5B50;&#x6587;&#x6863;&#x7684;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&#x3002;   </p>
</blockquote>
<h3 id="&#x7956;&#x8F88;&#x4E0E;&#x5B59;&#x8F88;&#x5173;&#x7CFB;"><a name="&#x7956;&#x8F88;&#x4E0E;&#x5B59;&#x8F88;&#x5173;&#x7CFB;" class="anchor-navigation-ex-anchor" href="#&#x7956;&#x8F88;&#x4E0E;&#x5B59;&#x8F88;&#x5173;&#x7CFB;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x7956;&#x8F88;&#x4E0E;&#x5B59;&#x8F88;&#x5173;&#x7CFB;</h3>
<p>&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x53EF;&#x4EE5;&#x5EF6;&#x5C55;&#x5230;&#x66F4;&#x591A;&#x4EE3;&#x5173;&#x7CFB;&#xFF0C;&#x6BD4;&#x5982;&#x751F;&#x6D3B;&#x4E2D;&#x5B59;&#x8F88;&#x4E0E;&#x7956;&#x8F88;&#x7684;&#x5173;&#x7CFB; &#x2014; &#x552F;&#x4E00;&#x7684;&#x8981;&#x6C42;&#x662F;&#x6EE1;&#x8DB3;&#x8FD9;&#x4E9B;&#x5173;&#x7CFB;&#x7684;&#x6587;&#x6863;&#x5FC5;&#x987B;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E0A;&#x88AB;&#x7D22;&#x5F15;&#x3002;</p>
<p>&#x8BA9;&#x6211;&#x4EEC;&#x628A;&#x4E0A;&#x4E00;&#x4E2A;&#x4F8B;&#x5B50;&#x4E2D;&#x7684; <code>country</code> &#x7C7B;&#x578B;&#x8BBE;&#x5B9A;&#x4E3A; <code>branch</code> &#x7C7B;&#x578B;&#x7684;&#x7236;&#x8F88;&#xFF1A;</p>
<pre><code class="lang-json">PUT /company
{
  <span class="hljs-string">&quot;mappings&quot;</span>: {
    <span class="hljs-string">&quot;country&quot;</span>: {},
    <span class="hljs-string">&quot;branch&quot;</span>: {
      <span class="hljs-string">&quot;_parent&quot;</span>: {
        <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;country&quot;</span>      &lt;<span class="hljs-number">1</span>&gt;
      }
    },
    <span class="hljs-string">&quot;employee&quot;</span>: {
      <span class="hljs-string">&quot;_parent&quot;</span>: {
        <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;branch&quot;</span>       &lt;<span class="hljs-number">2</span>&gt;
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>branch</code> &#x662F; <code>country</code> &#x7684;&#x5B50;&#x8F88;&#x3002;   </p>
<p> <img src="assets/2.png" alt="img">   <code>employee</code> &#x662F; <code>branch</code> &#x7684;&#x5B50;&#x8F88;&#x3002;   </p>
</blockquote>
<p>country &#x548C; branch &#x4E4B;&#x95F4;&#x662F;&#x4E00;&#x5C42;&#x7B80;&#x5355;&#x7684;&#x7236;&#x5B50;&#x5173;&#x7CFB;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x7684; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/indexing-parent-child.html" target="_blank">&#x64CD;&#x4F5C;&#x6B65;&#x9AA4;</a> &#x4E0E;&#x4E4B;&#x524D;&#x4FDD;&#x6301;&#x4E00;&#x81F4;&#xFF1A;</p>
<pre><code class="lang-json">POST /company/country/_bulk
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;uk&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;UK&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;france&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;France&quot;</span> }

POST /company/branch/_bulk
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;london&quot;</span>, <span class="hljs-string">&quot;parent&quot;</span>: <span class="hljs-string">&quot;uk&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;London Westmintster&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;liverpool&quot;</span>, <span class="hljs-string">&quot;parent&quot;</span>: <span class="hljs-string">&quot;uk&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Liverpool Central&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;paris&quot;</span>, <span class="hljs-string">&quot;parent&quot;</span>: <span class="hljs-string">&quot;france&quot;</span> }}
{ <span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;Champs &#xC9;lys&#xE9;es&quot;</span> }
</code></pre>
<p><code>parent</code> ID &#x4F7F;&#x5F97;&#x6BCF;&#x4E00;&#x4E2A; <code>branch</code> &#x6587;&#x6863;&#x88AB;&#x8DEF;&#x7531;&#x5230;&#x4E0E;&#x5176;&#x7236;&#x6587;&#x6863; <code>country</code> &#x76F8;&#x540C;&#x7684;&#x5206;&#x7247;&#x4E0A;&#x8FDB;&#x884C;&#x64CD;&#x4F5C;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x5F53;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x76F8;&#x540C;&#x7684;&#x65B9;&#x6CD5;&#x6765;&#x64CD;&#x4F5C; <code>employee</code> &#x8FD9;&#x4E2A;&#x5B59;&#x8F88;&#x6587;&#x6863;&#x65F6;&#xFF0C;&#x4F1A;&#x53D1;&#x751F;&#x4EC0;&#x4E48;&#x5462;&#xFF1F;</p>
<pre><code class="lang-json">PUT /company/employee/<span class="hljs-number">1</span>?parent=london
{
  <span class="hljs-string">&quot;name&quot;</span>:  <span class="hljs-string">&quot;Alice Smith&quot;</span>,
  <span class="hljs-string">&quot;dob&quot;</span>:   <span class="hljs-string">&quot;1970-10-24&quot;</span>,
  <span class="hljs-string">&quot;hobby&quot;</span>: <span class="hljs-string">&quot;hiking&quot;</span>
}
</code></pre>
<p>employee &#x6587;&#x6863;&#x7684;&#x8DEF;&#x7531;&#x4F9D;&#x8D56;&#x5176;&#x7236;&#x6587;&#x6863; ID &#x2014; &#x4E5F;&#x5C31;&#x662F; <code>london</code> &#x2014; &#x4F46;&#x662F; <code>london</code> &#x6587;&#x6863;&#x7684;&#x8DEF;&#x7531;&#x5374;&#x4F9D;&#x8D56; <em>&#x5176;&#x672C;&#x8EAB;&#x7684;</em> &#x7236;&#x6587;&#x6863; ID &#x2014; &#x4E5F;&#x5C31;&#x662F; <code>uk</code> &#x3002;&#x6B64;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5B59;&#x8F88;&#x6587;&#x6863;&#x5F88;&#x6709;&#x53EF;&#x80FD;&#x6700;&#x7EC8;&#x548C;&#x7236;&#x8F88;&#x3001;&#x7956;&#x8F88;&#x6587;&#x6863;&#x4E0D;&#x5728;&#x540C;&#x4E00;&#x5206;&#x7247;&#x4E0A;&#xFF0C;&#x5BFC;&#x81F4;&#x4E0D;&#x6EE1;&#x8DB3;&#x7956;&#x8F88;&#x548C;&#x5B59;&#x8F88;&#x6587;&#x6863;&#x5FC5;&#x987B;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E0A;&#x88AB;&#x7D22;&#x5F15;&#x7684;&#x8981;&#x6C42;&#x3002;</p>
<p>&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x662F;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x989D;&#x5916;&#x7684; <code>routing</code> &#x53C2;&#x6570;&#xFF0C;&#x5C06;&#x5176;&#x8BBE;&#x7F6E;&#x4E3A;&#x7956;&#x8F88;&#x7684;&#x6587;&#x6863; ID &#xFF0C;&#x4EE5;&#x6B64;&#x6765;&#x4FDD;&#x8BC1;&#x4E09;&#x4EE3;&#x6587;&#x6863;&#x8DEF;&#x7531;&#x5230;&#x540C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E0A;&#x3002;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-json">PUT /company/employee/<span class="hljs-number">1</span>?parent=london&amp;routing=uk       &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;name&quot;</span>:  <span class="hljs-string">&quot;Alice Smith&quot;</span>,
  <span class="hljs-string">&quot;dob&quot;</span>:   <span class="hljs-string">&quot;1970-10-24&quot;</span>,
  <span class="hljs-string">&quot;hobby&quot;</span>: <span class="hljs-string">&quot;hiking&quot;</span>
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>routing</code> &#x7684;&#x503C;&#x4F1A;&#x53D6;&#x4EE3; <code>parent</code> &#x7684;&#x503C;&#x4F5C;&#x4E3A;&#x8DEF;&#x7531;&#x9009;&#x62E9;&#x3002;   </p>
</blockquote>
<p><code>parent</code> &#x53C2;&#x6570;&#x7684;&#x503C;&#x4ECD;&#x7136;&#x53EF;&#x4EE5;&#x6807;&#x8BC6; employee &#x6587;&#x6863;&#x4E0E;&#x5176;&#x7236;&#x6587;&#x6863;&#x7684;&#x5173;&#x7CFB;&#xFF0C;&#x4F46;&#x662F; <code>routing</code> &#x53C2;&#x6570;&#x4FDD;&#x8BC1;&#x8BE5;&#x6587;&#x6863;&#x88AB;&#x5B58;&#x50A8;&#x5230;&#x5176;&#x7236;&#x8F88;&#x548C;&#x7956;&#x8F88;&#x7684;&#x5206;&#x7247;&#x4E0A;&#x3002;<code>routing</code> &#x503C;&#x5728;&#x6240;&#x6709;&#x7684;&#x6587;&#x6863;&#x8BF7;&#x6C42;&#x4E2D;&#x90FD;&#x8981;&#x6DFB;&#x52A0;&#x3002;</p>
<p>&#x8054;&#x5408;&#x591A;&#x4EE3;&#x6587;&#x6863;&#x8FDB;&#x884C;&#x67E5;&#x8BE2;&#x548C;&#x805A;&#x5408;&#x662F;&#x53EF;&#x884C;&#x7684;&#xFF0C;&#x53EA;&#x9700;&#x8981;&#x4E00;&#x4EE3;&#x4EE3;&#x7684;&#x8FDB;&#x884C;&#x8BBE;&#x5B9A;&#x5373;&#x53EF;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x8981;&#x627E;&#x5230;&#x54EA;&#x4E9B;&#x56FD;&#x5BB6;&#x7684;&#x96C7;&#x5458;&#x559C;&#x6B22;&#x8FDC;&#x8DB3;&#x65C5;&#x884C;&#xFF0C;&#x6B64;&#x65F6;&#x53EA;&#x9700;&#x8981;&#x8054;&#x5408; country &#x548C; branch&#xFF0C;&#x4EE5;&#x53CA; branch &#x548C; employee&#xFF1A;</p>
<pre><code class="lang-json">GET /company/country/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;has_child&quot;</span>: {
      <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;branch&quot;</span>,
      <span class="hljs-string">&quot;query&quot;</span>: {
        <span class="hljs-string">&quot;has_child&quot;</span>: {
          <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;employee&quot;</span>,
          <span class="hljs-string">&quot;query&quot;</span>: {
            <span class="hljs-string">&quot;match&quot;</span>: {
              <span class="hljs-string">&quot;hobby&quot;</span>: <span class="hljs-string">&quot;hiking&quot;</span>
            }
          }
        }
      }
    }
  }
}
</code></pre>
<h3 id="&#x5B9E;&#x9645;&#x4F7F;&#x7528;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x5EFA;&#x8BAE;"><a name="&#x5B9E;&#x9645;&#x4F7F;&#x7528;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x5EFA;&#x8BAE;" class="anchor-navigation-ex-anchor" href="#&#x5B9E;&#x9645;&#x4F7F;&#x7528;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x5EFA;&#x8BAE;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5B9E;&#x9645;&#x4F7F;&#x7528;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x5EFA;&#x8BAE;</h3>
<p>&#x5F53;&#x6587;&#x6863;&#x7D22;&#x5F15;&#x6027;&#x80FD;&#x8FDC;&#x6BD4;&#x67E5;&#x8BE2;&#x6027;&#x80FD;&#x91CD;&#x8981; &#x7684;&#x65F6;&#x5019;&#xFF0C;&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x662F;&#x975E;&#x5E38;&#x6709;&#x7528;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x4E5F;&#x662F;&#x6709;&#x5DE8;&#x5927;&#x4EE3;&#x4EF7;&#x7684;&#x3002;&#x5176;&#x67E5;&#x8BE2;&#x901F;&#x5EA6;&#x4F1A;&#x6BD4;&#x540C;&#x7B49;&#x7684;&#x5D4C;&#x5957;&#x67E5;&#x8BE2;&#x6162;5&#x5230;10&#x500D;!</p>
<p><strong>&#x5168;&#x5C40;&#x5E8F;&#x53F7;&#x548C;&#x5EF6;&#x8FDF;</strong></p>
<p>&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x4F7F;&#x7528;&#x4E86;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/preload-fielddata.html#global-ordinals" target="_blank">&#x5168;&#x5C40;&#x5E8F;&#x6570;</a> &#x6765;&#x52A0;&#x901F;&#x6587;&#x6863;&#x95F4;&#x7684;&#x8054;&#x5408;&#x3002;&#x4E0D;&#x7BA1;&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x6620;&#x5C04;&#x662F;&#x5426;&#x4F7F;&#x7528;&#x4E86;&#x5185;&#x5B58;&#x7F13;&#x5B58;&#x6216;&#x57FA;&#x4E8E;&#x786C;&#x76D8;&#x7684; doc values&#xFF0C;&#x5F53;&#x7D22;&#x5F15;&#x53D8;&#x66F4;&#x65F6;&#xFF0C;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x8981;&#x91CD;&#x5EFA;&#x3002;</p>
<p>&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E2D;&#x7236;&#x6587;&#x6863;&#x8D8A;&#x591A;&#xFF0C;&#x90A3;&#x4E48;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x7684;&#x91CD;&#x5EFA;&#x5C31;&#x9700;&#x8981;&#x66F4;&#x591A;&#x7684;&#x65F6;&#x95F4;&#x3002;&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x66F4;&#x9002;&#x5408;&#x4E8E;&#x7236;&#x6587;&#x6863;&#x5C11;&#x3001;&#x5B50;&#x6587;&#x6863;&#x591A;&#x7684;&#x60C5;&#x51B5;&#x3002;</p>
<p>&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#x662F;&#x5EF6;&#x8FDF;&#x6784;&#x5EFA;&#x7684;&#xFF1A;&#x5728;refresh&#x540E;&#x7684;&#x7B2C;&#x4E00;&#x4E2A;&#x7236;&#x5B50;&#x67E5;&#x8BE2;&#x4F1A;&#x89E6;&#x53D1;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x7684;&#x6784;&#x5EFA;&#x3002;&#x800C;&#x8FD9;&#x4E2A;&#x6784;&#x5EFA;&#x4F1A;&#x5BFC;&#x81F4;&#x7528;&#x6237;&#x4F7F;&#x7528;&#x65F6;&#x611F;&#x53D7;&#x5230;&#x660E;&#x663E;&#x7684;&#x8FDF;&#x7F13;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/preload-fielddata.html#eager-global-ordinals" target="_blank">&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x9884;&#x52A0;&#x8F7D;</a> &#x6765;&#x5C06;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x6784;&#x5EFA;&#x7684;&#x5F00;&#x9500;&#x7531;query&#x9636;&#x6BB5;&#x8F6C;&#x79FB;&#x5230;refresh&#x9636;&#x6BB5;&#xFF0C;&#x8BBE;&#x7F6E;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="lang-json">PUT /company
{
  <span class="hljs-string">&quot;mappings&quot;</span>: {
    <span class="hljs-string">&quot;branch&quot;</span>: {},
    <span class="hljs-string">&quot;employee&quot;</span>: {
      <span class="hljs-string">&quot;_parent&quot;</span>: {
        <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;branch&quot;</span>,
        <span class="hljs-string">&quot;fielddata&quot;</span>: {
          <span class="hljs-string">&quot;loading&quot;</span>: <span class="hljs-string">&quot;eager_global_ordinals&quot;</span>     &lt;<span class="hljs-number">1</span>&gt;
        }
      }
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x5728;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x6BB5;&#x53EF;&#x641C;&#x7D22;&#x524D;&#xFF0C;<code>_parent</code> &#x5B57;&#x6BB5;&#x7684;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x4F1A;&#x88AB;&#x6784;&#x5EFA;&#x3002;  </p>
</blockquote>
<p>&#x5F53;&#x7236;&#x6587;&#x6863;&#x8FC7;&#x591A;&#x65F6;&#xFF0C;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x7684;&#x6784;&#x5EFA;&#x4F1A;&#x8017;&#x8D39;&#x5F88;&#x591A;&#x65F6;&#x95F4;&#x3002;&#x6B64;&#x65F6;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x589E;&#x52A0; <code>refresh_interval</code> &#x6765;&#x51CF;&#x5C11; refresh &#x7684;&#x6B21;&#x6570;&#xFF0C;&#x5EF6;&#x957F;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x7684;&#x6709;&#x6548;&#x65F6;&#x95F4;&#xFF0C;&#x8FD9;&#x4E5F;&#x5F88;&#x5927;&#x7A0B;&#x5EA6;&#x4E0A;&#x51CF;&#x5C0F;&#x4E86;&#x5168;&#x5C40;&#x5E8F;&#x6570;&#x6BCF;&#x79D2;&#x91CD;&#x5EFA;&#x7684;cpu&#x6D88;&#x8017;&#x3002;</p>
<p><strong>&#x591A;&#x4EE3;&#x4F7F;&#x7528;&#x548C;&#x7ED3;&#x8BED;</strong></p>
<p>&#x591A;&#x4EE3;&#x6587;&#x6863;&#x7684;&#x8054;&#x5408;&#x67E5;&#x8BE2;(&#x67E5;&#x770B; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/grandparents.html" target="_blank">&#x7956;&#x8F88;&#x4E0E;&#x5B59;&#x8F88;&#x5173;&#x7CFB;</a>)&#x867D;&#x7136;&#x770B;&#x8D77;&#x6765;&#x5F88;&#x5438;&#x5F15;&#x4EBA; &#xFF0C;&#x4F46;&#x5FC5;&#x987B;&#x8003;&#x8651;&#x5982;&#x4E0B;&#x7684;&#x4EE3;&#x4EF7;&#xFF1A;</p>
<ul>
<li>&#x8054;&#x5408;&#x8D8A;&#x591A;&#xFF0C;&#x6027;&#x80FD;&#x8D8A;&#x5DEE;&#x3002;</li>
<li>&#x6BCF;&#x4E00;&#x4EE3;&#x7684;&#x7236;&#x6587;&#x6863;&#x90FD;&#x8981;&#x5C06;&#x5176;&#x5B57;&#x7B26;&#x4E32;&#x7C7B;&#x578B;&#x7684; <code>_id</code> &#x5B57;&#x6BB5;&#x5B58;&#x50A8;&#x5728;&#x5185;&#x5B58;&#x4E2D;&#xFF0C;&#x8FD9;&#x4F1A;&#x5360;&#x7528;&#x5927;&#x91CF;&#x5185;&#x5B58;&#x3002;</li>
</ul>
<p>&#x5F53;&#x4F60;&#x8003;&#x8651;&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x662F;&#x5426;&#x9002;&#x5408;&#x4F60;&#x73B0;&#x6709;&#x5173;&#x7CFB;&#x6A21;&#x578B;&#x65F6;&#xFF0C;&#x8BF7;&#x8003;&#x8651;&#x4E0B;&#x9762;&#x8FD9;&#x4E9B;&#x5EFA;&#x8BAE; &#xFF1A;</p>
<ul>
<li>&#x5C3D;&#x91CF;&#x5C11;&#x5730;&#x4F7F;&#x7528;&#x7236;&#x5B50;&#x5173;&#x7CFB;&#xFF0C;&#x4EC5;&#x5728;&#x5B50;&#x6587;&#x6863;&#x8FDC;&#x591A;&#x4E8E;&#x7236;&#x6587;&#x6863;&#x65F6;&#x4F7F;&#x7528;&#x3002;</li>
<li>&#x907F;&#x514D;&#x5728;&#x4E00;&#x4E2A;&#x67E5;&#x8BE2;&#x4E2D;&#x4F7F;&#x7528;&#x591A;&#x4E2A;&#x7236;&#x5B50;&#x8054;&#x5408;&#x8BED;&#x53E5;&#x3002;</li>
<li>&#x5728; has_child &#x67E5;&#x8BE2;&#x4E2D;&#x4F7F;&#x7528; filter &#x4E0A;&#x4E0B;&#x6587;&#xFF0C;&#x6216;&#x8005;&#x8BBE;&#x7F6E; score_mode &#x4E3A; none &#x6765;&#x907F;&#x514D;&#x8BA1;&#x7B97;&#x6587;&#x6863;&#x5F97;&#x5206;&#x3002;</li>
<li>&#x4FDD;&#x8BC1;&#x7236; IDs &#x5C3D;&#x91CF;&#x77ED;&#xFF0C;&#x4EE5;&#x4FBF;&#x5728; doc values &#x4E2D;&#x66F4;&#x597D;&#x5730;&#x538B;&#x7F29;&#xFF0C;&#x88AB;&#x4E34;&#x65F6;&#x8F7D;&#x5165;&#x65F6;&#x5360;&#x7528;&#x66F4;&#x5C11;&#x7684;&#x5185;&#x5B58;&#x3002;</li>
</ul>
<p><em>&#x6700;&#x91CD;&#x8981;&#x7684;&#x662F;:</em> &#x5148;&#x8003;&#x8651;&#x4E0B;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x8BA8;&#x8BBA;&#x8FC7;&#x7684;&#x5176;&#x4ED6;&#x65B9;&#x5F0F;&#x6765;&#x8FBE;&#x5230;&#x7236;&#x5B50;&#x5173;&#x7CFB;&#x7684;&#x6548;&#x679C;&#x3002;</p>
<h2 id="&#x6269;&#x5BB9;&#x8BBE;&#x8BA1;"><a name="&#x6269;&#x5BB9;&#x8BBE;&#x8BA1;" class="anchor-navigation-ex-anchor" href="#&#x6269;&#x5BB9;&#x8BBE;&#x8BA1;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6269;&#x5BB9;&#x8BBE;&#x8BA1;</h2>
<p>&#x4E00;&#x4E9B;&#x516C;&#x53F8;&#x6BCF;&#x5929;&#x4F7F;&#x7528; Elasticsearch &#x7D22;&#x5F15;&#x68C0;&#x7D22; PB &#x7EA7;&#x6570;&#x636E;&#xFF0C; &#x4F46;&#x6211;&#x4EEC;&#x4E2D;&#x7684;&#x5927;&#x591A;&#x6570;&#x90FD;&#x8D77;&#x6B65;&#x4E8E;&#x89C4;&#x6A21;&#x7A0D;&#x900A;&#x7684;&#x9879;&#x76EE;&#x3002;&#x5373;&#x4F7F;&#x6211;&#x4EEC;&#x7ACB;&#x5FD7;&#x6210;&#x4E3A;&#x4E0B;&#x4E00;&#x4E2A; Facebook&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x94F6;&#x884C;&#x5361;&#x4F59;&#x989D;&#x5374;&#x4E5F;&#x8DDF;&#x4E0D;&#x4E0A;&#x68A6;&#x60F3;&#x7684;&#x811A;&#x6B65;&#x3002; &#x6211;&#x4EEC;&#x9700;&#x8981;&#x4E3A;&#x4ECA;&#x65E5;&#x6240;&#x9700;&#x800C;&#x6784;&#x5EFA;&#xFF0C;&#x4F46;&#x4E5F;&#x8981;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7075;&#x6D3B;&#x800C;&#x53C8;&#x5FEB;&#x901F;&#x5730;&#x8FDB;&#x884C;&#x6C34;&#x5E73;&#x6269;&#x5C55;&#x3002;</p>
<p>Elasticsearch &#x4E3A;&#x4E86;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x800C;&#x751F;&#x3002;&#x5B83;&#x53EF;&#x4EE5;&#x826F;&#x597D;&#x5730;&#x8FD0;&#x884C;&#x4E8E;&#x4F60;&#x7684;&#x7B14;&#x8BB0;&#x672C;&#x7535;&#x8111;&#x53C8;&#x6216;&#x8005;&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x6570;&#x767E;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#xFF0C;&#x540C;&#x65F6;&#x7528;&#x6237;&#x4F53;&#x9A8C;&#x57FA;&#x672C;&#x76F8;&#x540C;&#x3002; &#x7531;&#x5C0F;&#x89C4;&#x6A21;&#x96C6;&#x7FA4;&#x589E;&#x957F;&#x4E3A;&#x5927;&#x89C4;&#x6A21;&#x96C6;&#x7FA4;&#x7684;&#x8FC7;&#x7A0B;&#x51E0;&#x4E4E;&#x5B8C;&#x5168;&#x81EA;&#x52A8;&#x5316;&#x5E76;&#x4E14;&#x65E0;&#x75DB;&#x3002;&#x7531;&#x5927;&#x89C4;&#x6A21;&#x96C6;&#x7FA4;&#x589E;&#x957F;&#x4E3A;&#x8D85;&#x5927;&#x89C4;&#x6A21;&#x96C6;&#x7FA4;&#x9700;&#x8981;&#x4E00;&#x4E9B;&#x89C4;&#x5212;&#x548C;&#x8BBE;&#x8BA1;&#xFF0C;&#x4F46;&#x8FD8;&#x662F;&#x76F8;&#x5BF9;&#x5730;&#x65E0;&#x75DB;&#x3002;</p>
<p>&#x5F53;&#x7136;&#x8FD9;&#x4E00;&#x5207;&#x5E76;&#x4E0D;&#x662F;&#x9B54;&#x6CD5;&#x3002;Elasticsearch &#x4E5F;&#x6709;&#x5B83;&#x7684;&#x5C40;&#x9650;&#x6027;&#x3002;&#x5982;&#x679C;&#x4F60;&#x4E86;&#x89E3;&#x8FD9;&#x4E9B;&#x5C40;&#x9650;&#x6027;&#x5E76;&#x80FD;&#x591F;&#x4E0E;&#x4E4B;&#x76F8;&#x5904;&#xFF0C;&#x96C6;&#x7FA4;&#x6269;&#x5BB9;&#x7684;&#x8FC7;&#x7A0B;&#x5C06;&#x4F1A;&#x662F;&#x6109;&#x5FEB;&#x7684;&#x3002; &#x5982;&#x679C;&#x4F60;&#x5BF9; Elasticsearch &#x5904;&#x7406;&#x4E0D;&#x5F53;&#xFF0C;&#x90A3;&#x4E48;&#x4F60;&#x5C06;&#x5904;&#x4E8E;&#x4E00;&#x4E2A;&#x5145;&#x6EE1;&#x75DB;&#x82E6;&#x7684;&#x4E16;&#x754C;&#x3002;</p>
<p>Elasticsearch &#x7684;&#x9ED8;&#x8BA4;&#x8BBE;&#x7F6E;&#x4F1A;&#x4F34;&#x4F60;&#x8D70;&#x8FC7;&#x5F88;&#x957F;&#x7684;&#x4E00;&#x6BB5;&#x8DEF;&#xFF0C;&#x4F46;&#x4E3A;&#x4E86;&#x53D1;&#x6325;&#x5B83;&#x6700;&#x5927;&#x7684;&#x6548;&#x7528;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x8003;&#x8651;&#x6570;&#x636E;&#x662F;&#x5982;&#x4F55;&#x6D41;&#x7ECF;&#x4F60;&#x7684;&#x7CFB;&#x7EDF;&#x7684;&#x3002; &#x6211;&#x4EEC;&#x5C06;&#x8BA8;&#x8BBA;&#x4E24;&#x79CD;&#x5E38;&#x89C1;&#x7684;&#x6570;&#x636E;&#x6D41;&#xFF1A;&#x65F6;&#x5E8F;&#x6570;&#x636E;&#xFF08;&#x65F6;&#x95F4;&#x9A71;&#x52A8;&#x76F8;&#x5173;&#x6027;&#xFF0C;&#x4F8B;&#x5982;&#x65E5;&#x5FD7;&#x6216;&#x793E;&#x4EA4;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#x6D41;&#xFF09;&#xFF0C;&#x4EE5;&#x53CA;&#x57FA;&#x4E8E;&#x7528;&#x6237;&#x7684;&#x6570;&#x636E;&#xFF08;&#x62E5;&#x6709;&#x5F88;&#x5927;&#x7684;&#x6587;&#x6863;&#x96C6;&#x4F46;&#x53EF;&#x4EE5;&#x6309;&#x7528;&#x6237;&#x6216;&#x5BA2;&#x6237;&#x7EC6;&#x5206;&#xFF09;&#x3002;</p>
<p>&#x8FD9;&#x4E00;&#x7AE0;&#x5C06;&#x5E2E;&#x52A9;&#x4F60;&#x5728;&#x9047;&#x5230;&#x4E0D;&#x6109;&#x5FEB;&#x4E4B;&#x524D;&#x505A;&#x51FA;&#x6B63;&#x786E;&#x7684;&#x9009;&#x62E9;&#x3002;</p>
<h3 id="&#x6269;&#x5BB9;&#x7684;&#x5355;&#x5143;"><a name="&#x6269;&#x5BB9;&#x7684;&#x5355;&#x5143;" class="anchor-navigation-ex-anchor" href="#&#x6269;&#x5BB9;&#x7684;&#x5355;&#x5143;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6269;&#x5BB9;&#x7684;&#x5355;&#x5143;</h3>
<p>&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/dynamic-indices.html" target="_blank">&#x52A8;&#x6001;&#x66F4;&#x65B0;&#x7D22;&#x5F15;</a>&#xFF0C;&#x6211;&#x4EEC;&#x4ECB;&#x7ECD;&#x4E86;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x5373;&#x4E00;&#x4E2A; <em>Lucene &#x7D22;&#x5F15;</em> &#xFF0C;&#x4E00;&#x4E2A; Elasticsearch &#x7D22;&#x5F15;&#x5373;&#x4E00;&#x7CFB;&#x5217;&#x5206;&#x7247;&#x7684;&#x96C6;&#x5408;&#x3002; &#x4F60;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E0E;&#x7D22;&#x5F15;&#x8FDB;&#x884C;&#x4EA4;&#x4E92;&#xFF0C;Elasticsearch &#x5E2E;&#x52A9;&#x4F60;&#x5C06;&#x8BF7;&#x6C42;&#x8DEF;&#x7531;&#x81F3;&#x76F8;&#x5E94;&#x7684;&#x5206;&#x7247;&#x3002;</p>
<p>&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x5373;&#x4E3A; <em>&#x6269;&#x5BB9;&#x7684;&#x5355;&#x5143;</em> &#x3002; &#x4E00;&#x4E2A;&#x6700;&#x5C0F;&#x7684;&#x7D22;&#x5F15;&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x3002; &#x8FD9;&#x53EF;&#x80FD;&#x5DF2;&#x7ECF;&#x5B8C;&#x5168;&#x6EE1;&#x8DB3;&#x4F60;&#x7684;&#x9700;&#x6C42;&#x4E86;&#x2009;&#x2014;&#x2009;&#x5355;&#x4E2A;&#x5206;&#x7247;&#x5373;&#x53EF;&#x5B58;&#x50A8;&#x5927;&#x91CF;&#x7684;&#x6570;&#x636E;&#x2009;&#x2014;&#x2009;&#x4F46;&#x8FD9;&#x9650;&#x5236;&#x4E86;&#x4F60;&#x7684;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x3002;</p>
<p>&#x60F3;&#x8C61;&#x4E00;&#x4E0B;&#x6211;&#x4EEC;&#x7684;&#x96C6;&#x7FA4;&#x7531;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x7EC4;&#x6210;&#xFF0C;&#x5728;&#x96C6;&#x7FA4;&#x5185;&#x6211;&#x4EEC;&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#xFF0C;&#x8FD9;&#x4E2A;&#x7D22;&#x5F15;&#x53EA;&#x542B;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index
{
  <span class="hljs-string">&quot;settings&quot;</span>: {
    <span class="hljs-string">&quot;number_of_shards&quot;</span>:   <span class="hljs-number">1</span>,      <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
    &quot;number_of_replicas&quot;: 0
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x62E5;&#x6709; 1 &#x4E3B;&#x5206;&#x7247; 0 &#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;.   </p>
</blockquote>
<p>&#x8FD9;&#x4E2A;&#x8BBE;&#x7F6E;&#x503C;&#x4E5F;&#x8BB8;&#x5F88;&#x5C0F;&#xFF0C;&#x4F46;&#x5B83;&#x6EE1;&#x8DB3;&#x6211;&#x4EEC;&#x5F53;&#x524D;&#x7684;&#x9700;&#x6C42;&#x800C;&#x4E14;&#x8FD0;&#x884C;&#x4EE3;&#x4EF7;&#x4F4E;&#x3002;</p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x5F53;&#x524D;&#x6211;&#x4EEC;&#x53EA;&#x8BA8;&#x8BBA; <em>&#x4E3B;</em> &#x5206;&#x7247;&#x3002;&#x6211;&#x4EEC;&#x5C06;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/replica-shards.html" target="_blank">&#x526F;&#x672C;&#x5206;&#x7247;</a> &#x8BA8;&#x8BBA; <em>&#x526F;&#x672C;</em> &#x5206;&#x7247;&#x3002;  </p>
</blockquote>
<p>&#x5728;&#x7F8E;&#x597D;&#x7684;&#x4E00;&#x5929;&#xFF0C;&#x4E92;&#x8054;&#x7F51;&#x53D1;&#x73B0;&#x4E86;&#x6211;&#x4EEC;&#xFF0C;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x518D;&#x4E5F;&#x627F;&#x53D7;&#x4E0D;&#x4E86;&#x6211;&#x4EEC;&#x7684;&#x6D41;&#x91CF;&#x3002; &#x6211;&#x4EEC;&#x51B3;&#x5B9A;&#x6839;&#x636E; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/shard-scale.html#img-one-shard" target="_blank">&#x56FE; 49 &#x201C;&#x4E00;&#x4E2A;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x65E0;&#x6269;&#x5BB9;&#x56E0;&#x5B50;&#x201D;</a> &#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x3002;&#x8FD9;&#x5C06;&#x4F1A;&#x53D1;&#x751F;&#x4EC0;&#x4E48;&#x5462;&#xFF1F;</p>
<p><strong>&#x56FE; 49. &#x4E00;&#x4E2A;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x65E0;&#x6269;&#x5BB9;&#x56E0;&#x5B50;</strong></p>
<p><img src="assets/elas_4401.png" alt="&#x4E00;&#x4E2A;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x65E0;&#x6269;&#x5BB9;&#x56E0;&#x5B50;"></p>
<p>&#x7B54;&#x6848;&#x662F;&#xFF1A;&#x4EC0;&#x4E48;&#x90FD;&#x4E0D;&#x4F1A;&#x53D1;&#x751F;&#x3002;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x5DF2;&#x7ECF;&#x6CA1;&#x6709;&#x4EC0;&#x4E48;&#x53EF;&#x4EE5;&#x653E;&#x5728;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x7684;&#x4E86;&#x3002; &#x6211;&#x4EEC;&#x4E0D;&#x80FD;&#x589E;&#x52A0;&#x7D22;&#x5F15;&#x7684;&#x5206;&#x7247;&#x6570;&#x56E0;&#x4E3A;&#x5B83;&#x662F; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/routing-value.html" target="_blank">route documents to shards</a> &#x7B97;&#x6CD5;&#x4E2D;&#x7684;&#x91CD;&#x8981;&#x5143;&#x7D20;&#xFF1A;</p>
<pre><code>shard = hash(routing) % number_of_primary_shards
</code></pre><p>&#x6211;&#x4EEC;&#x5F53;&#x524D;&#x7684;&#x9009;&#x62E9;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x5C31;&#x662F;&#x5C06;&#x6570;&#x636E;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x81F3;&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x66F4;&#x591A;&#x5206;&#x7247;&#x7684;&#x4E00;&#x4E2A;&#x66F4;&#x5927;&#x7684;&#x7D22;&#x5F15;&#xFF0C;&#x4F46;&#x8FD9;&#x6837;&#x505A;&#x5C06;&#x6D88;&#x8017;&#x7684;&#x65F6;&#x95F4;&#x662F;&#x6211;&#x4EEC;&#x65E0;&#x6CD5;&#x63D0;&#x4F9B;&#x7684;&#x3002; &#x901A;&#x8FC7;&#x4E8B;&#x5148;&#x89C4;&#x5212;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <em>&#x9884;&#x5206;&#x914D;</em> &#x7684;&#x65B9;&#x5F0F;&#x6765;&#x5B8C;&#x5168;&#x907F;&#x514D;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x3002;</p>
<h3 id="&#x5206;&#x7247;&#x9884;&#x5206;&#x914D;"><a name="&#x5206;&#x7247;&#x9884;&#x5206;&#x914D;" class="anchor-navigation-ex-anchor" href="#&#x5206;&#x7247;&#x9884;&#x5206;&#x914D;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5206;&#x7247;&#x9884;&#x5206;&#x914D;</h3>
<p>&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x5B58;&#x5728;&#x4E8E;&#x5355;&#x4E2A;&#x8282;&#x70B9;&#xFF0C; &#x4F46;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x53EF;&#x4EE5;&#x6301;&#x6709;&#x591A;&#x4E2A;&#x5206;&#x7247;&#x3002;&#x60F3;&#x8C61;&#x4E00;&#x4E0B;&#x6211;&#x4EEC;&#x521B;&#x5EFA;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x800C;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index
{
  <span class="hljs-string">&quot;settings&quot;</span>: {
    <span class="hljs-string">&quot;number_of_shards&quot;</span>:   <span class="hljs-number">2</span>,      <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
    &quot;number_of_replicas&quot;: 0
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x521B;&#x5EFA;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x65E0;&#x526F;&#x672C;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x3002;  </p>
</blockquote>
<p>&#x5F53;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x65F6;&#xFF0C;&#x4E24;&#x4E2A;&#x5206;&#x7247;&#x90FD;&#x5C06;&#x88AB;&#x5206;&#x914D;&#x81F3;&#x76F8;&#x540C;&#x7684;&#x8282;&#x70B9;&#x3002; &#x4ECE;&#x6211;&#x4EEC;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x7684;&#x89D2;&#x5EA6;&#x6765;&#x770B;&#xFF0C;&#x4E00;&#x5207;&#x90FD;&#x548C;&#x4E4B;&#x524D;&#x4E00;&#x6837;&#x8FD0;&#x4F5C;&#x7740;&#x3002;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x548C;&#x7D22;&#x5F15;&#x8FDB;&#x884C;&#x901A;&#x8BAF;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5206;&#x7247;&#xFF0C;&#x73B0;&#x5728;&#x8FD8;&#x662F;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x3002;</p>
<p>&#x8FD9;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x52A0;&#x5165;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;Elasticsearch &#x4F1A;&#x81EA;&#x52A8;&#x5C06;&#x5176;&#x4E2D;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x79FB;&#x52A8;&#x81F3;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x5982; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/overallocation.html#img-two-shard" target="_blank">&#x56FE; 50 &#x201C;&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x5229;&#x7528;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#x201D;</a> &#x63CF;&#x7ED8;&#x7684;&#x90A3;&#x6837;&#xFF0C; &#x5F53;&#x91CD;&#x65B0;&#x5206;&#x914D;&#x5B8C;&#x6210;&#x540E;&#xFF0C;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x90FD;&#x5C06;&#x63A5;&#x8FD1;&#x81F3;&#x4E24;&#x500D;&#x4E8E;&#x4E4B;&#x524D;&#x7684;&#x8BA1;&#x7B97;&#x80FD;&#x529B;&#x3002;</p>
<p><strong>&#x56FE; 50. &#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x5229;&#x7528;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;</strong></p>
<p><img src="assets/elas_4402.png" alt="&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x5229;&#x7528;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;"></p>
<p>&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x7B80;&#x5355;&#x5730;&#x5C06;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x901A;&#x8FC7;&#x7F51;&#x7EDC;&#x590D;&#x5236;&#x5230;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x8282;&#x70B9;&#x6765;&#x52A0;&#x500D;&#x6211;&#x4EEC;&#x7684;&#x5904;&#x7406;&#x80FD;&#x529B;&#x3002; &#x6700;&#x68D2;&#x7684;&#x662F;&#xFF0C;&#x6211;&#x4EEC;&#x96F6;&#x505C;&#x673A;&#x5730;&#x505A;&#x5230;&#x4E86;&#x8FD9;&#x4E00;&#x70B9;&#x3002;&#x5728;&#x5206;&#x7247;&#x79FB;&#x52A8;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x6240;&#x6709;&#x7684;&#x7D22;&#x5F15;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x5747;&#x5728;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#x3002;</p>
<p>&#x5728; Elasticsearch &#x4E2D;&#x65B0;&#x6DFB;&#x52A0;&#x7684;&#x7D22;&#x5F15;&#x9ED8;&#x8BA4;&#x88AB;&#x6307;&#x5B9A;&#x4E86;&#x4E94;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x3002; &#x8FD9;&#x610F;&#x5473;&#x7740;&#x6211;&#x4EEC;&#x6700;&#x591A;&#x53EF;&#x4EE5;&#x5C06;&#x90A3;&#x4E2A;&#x7D22;&#x5F15;&#x5206;&#x6563;&#x5230;&#x4E94;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#xFF0C;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x3002; &#x5B83;&#x5177;&#x6709;&#x5F88;&#x9AD8;&#x7684;&#x5904;&#x7406;&#x80FD;&#x529B;&#xFF0C;&#x8FD8;&#x672A;&#x7B49;&#x4F60;&#x53BB;&#x601D;&#x8003;&#x8FD9;&#x4E00;&#x5207;&#x5C31;&#x5DF2;&#x7ECF;&#x505A;&#x5230;&#x4E86;&#xFF01;</p>
<hr>
<p><strong>&#x5206;&#x7247;&#x5206;&#x88C2;</strong></p>
<blockquote>
<p> &#x7528;&#x6237;&#x7ECF;&#x5E38;&#x5728;&#x95EE;&#xFF0C;&#x4E3A;&#x4EC0;&#x4E48; Elasticsearch &#x4E0D;&#x652F;&#x6301; <em>&#x5206;&#x7247;&#x5206;&#x88C2;&#xFF08;shard-splitting&#xFF09;</em>&#x2014; &#x5C06;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x5206;&#x88C2;&#x4E3A;&#x4E24;&#x4E2A;&#x6216;&#x66F4;&#x591A;&#x90E8;&#x5206;&#x7684;&#x80FD;&#x529B;&#x3002; &#x539F;&#x56E0;&#x5C31;&#x662F;&#x5206;&#x7247;&#x5206;&#x88C2;&#x662F;&#x4E00;&#x4E2A;&#x7CDF;&#x7CD5;&#x7684;&#x60F3;&#x6CD5;&#xFF1A;</p>
<ul>
<li>&#x5206;&#x88C2;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x51E0;&#x4E4E;&#x7B49;&#x4E8E;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x4F60;&#x7684;&#x6570;&#x636E;&#x3002;&#x5B83;&#x662F;&#x4E00;&#x4E2A;&#x6BD4;&#x4EC5;&#x4EC5;&#x5C06;&#x5206;&#x7247;&#x4ECE;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x590D;&#x5236;&#x5230;&#x53E6;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x66F4;&#x91CD;&#x91CF;&#x7EA7;&#x7684;&#x64CD;&#x4F5C;&#x3002;</li>
<li>&#x5206;&#x88C2;&#x662F;&#x6307;&#x6570;&#x7684;&#x3002;&#x8D77;&#x521D;&#x4F60;&#x4F60;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x7136;&#x540E;&#x5206;&#x88C2;&#x4E3A;&#x4E24;&#x4E2A;&#xFF0C;&#x7136;&#x540E;&#x56DB;&#x4E2A;&#xFF0C;&#x516B;&#x4E2A;&#xFF0C;&#x5341;&#x516D;&#x4E2A;&#xFF0C;&#x7B49;&#x7B49;&#x3002;&#x5206;&#x88C2;&#x5E76;&#x4E0D;&#x4F1A;&#x521A;&#x597D;&#x5730;&#x628A;&#x4F60;&#x7684;&#x5904;&#x7406;&#x80FD;&#x529B;&#x63D0;&#x5347; 50%&#x3002;</li>
<li><p>&#x5206;&#x7247;&#x5206;&#x88C2;&#x9700;&#x8981;&#x4F60;&#x62E5;&#x6709;&#x8DB3;&#x591F;&#x7684;&#x80FD;&#x529B;&#x652F;&#x6491;&#x53E6;&#x4E00;&#x4EFD;&#x7D22;&#x5F15;&#x7684;&#x62F7;&#x8D1D;&#x3002;&#x901A;&#x5E38;&#x6765;&#x8BF4;&#xFF0C;&#x5F53;&#x4F60;&#x610F;&#x8BC6;&#x5230;&#x4F60;&#x9700;&#x8981;&#x6A2A;&#x5411;&#x6269;&#x5C55;&#x65F6;&#xFF0C;&#x4F60;&#x5DF2;&#x7ECF;&#x6CA1;&#x6709;&#x8DB3;&#x591F;&#x7684;&#x5269;&#x4F59;&#x7A7A;&#x95F4;&#x6765;&#x505A;&#x5206;&#x88C2;&#x4E86;&#x3002;</p>
<p>Elasticsearch &#x901A;&#x8FC7;&#x53E6;&#x4E00;&#x79CD;&#x65B9;&#x5F0F;&#x6765;&#x652F;&#x6301;&#x5206;&#x7247;&#x5206;&#x88C2;&#x3002;&#x4F60;&#x603B;&#x662F;&#x53EF;&#x4EE5;&#x628A;&#x4F60;&#x7684;&#x6570;&#x636E;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x81F3;&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x9002;&#x5F53;&#x5206;&#x7247;&#x4E2A;&#x6570;&#x7684;&#x65B0;&#x7D22;&#x5F15;&#xFF08;&#x53C2;&#x9605; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/reindex.html" target="_blank">&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x4F60;&#x7684;&#x6570;&#x636E;</a>&#xFF09;&#x3002; &#x548C;&#x79FB;&#x52A8;&#x5206;&#x7247;&#x6BD4;&#x8D77;&#x6765;&#x8FD9;&#x4F9D;&#x7136;&#x662F;&#x4E00;&#x4E2A;&#x66F4;&#x52A0;&#x5BC6;&#x96C6;&#x7684;&#x64CD;&#x4F5C;&#xFF0C;&#x4F9D;&#x7136;&#x9700;&#x8981;&#x8DB3;&#x591F;&#x7684;&#x5269;&#x4F59;&#x7A7A;&#x95F4;&#x6765;&#x5B8C;&#x6210;&#xFF0C;&#x4F46;&#x81F3;&#x5C11;&#x4F60;&#x53EF;&#x4EE5;&#x63A7;&#x5236;&#x65B0;&#x7D22;&#x5F15;&#x7684;&#x5206;&#x7247;&#x4E2A;&#x6570;&#x4E86;&#x3002;</p>
</li>
</ul>
<hr>
</blockquote>
<h3 id="&#x6D77;&#x91CF;&#x5206;&#x7247;"><a name="&#x6D77;&#x91CF;&#x5206;&#x7247;" class="anchor-navigation-ex-anchor" href="#&#x6D77;&#x91CF;&#x5206;&#x7247;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6D77;&#x91CF;&#x5206;&#x7247;</h3>
<hr>
<p>&#x5F53;&#x65B0;&#x624B;&#x4EEC;&#x5728;&#x4E86;&#x89E3;&#x8FC7; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/overallocation.html" target="_blank">&#x5206;&#x7247;&#x9884;&#x5206;&#x914D;</a> &#x4E4B;&#x540E;&#x505A;&#x7684;&#x7B2C;&#x4E00;&#x4EF6;&#x4E8B;&#x5C31;&#x662F;&#x5BF9;&#x81EA;&#x5DF1;&#x8BF4;&#xFF1A;</p>
<p>&#x200B;               &#x6211;&#x4E0D;&#x77E5;&#x9053;&#x8FD9;&#x4E2A;&#x7D22;&#x5F15;&#x5C06;&#x6765;&#x4F1A;&#x53D8;&#x5F97;&#x591A;&#x5927;&#xFF0C;&#x5E76;&#x4E14;&#x8FC7;&#x540E;&#x6211;&#x4E5F;&#x4E0D;&#x80FD;&#x66F4;&#x6539;&#x7D22;&#x5F15;&#x7684;&#x5927;&#x5C0F;&#xFF0C;&#x6240;&#x4EE5;&#x4E3A;&#x4E86;&#x4FDD;&#x9669;&#x8D77;&#x89C1;&#xFF0C;&#x8FD8;&#x662F;&#x7ED9;&#x5B83;&#x8BBE;&#x4E3A; 1000 &#x4E2A;&#x5206;&#x7247;&#x5427;&#x2026; 
&#x200B;                                                                         -- &#x4E00;&#x4E2A;&#x65B0;&#x624B;&#x7684;&#x8BDD;                                       </p>
<hr>
<p>&#x4E00;&#x5343;&#x4E2A;&#x5206;&#x7247;&#x2014;&#x2014;&#x5F53;&#x771F;&#xFF1F;&#x5728;&#x4F60;&#x4E70;&#x6765; <em>&#x4E00;&#x5343;&#x4E2A;&#x8282;&#x70B9;</em> &#x4E4B;&#x524D;&#xFF0C;&#x4F60;&#x4E0D;&#x89C9;&#x5F97;&#x4F60;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x518D;&#x4E09;&#x601D;&#x8003;&#x4F60;&#x7684;&#x6570;&#x636E;&#x6A21;&#x578B;&#x7136;&#x540E;&#x5C06;&#x5B83;&#x4EEC;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x5417;&#xFF1F;</p>
<p>&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x5E76;&#x4E0D;&#x662F;&#x6CA1;&#x6709;&#x4EE3;&#x4EF7;&#x7684;&#x3002;&#x8BB0;&#x4F4F;&#xFF1A;</p>
<ul>
<li>&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x5E95;&#x5C42;&#x5373;&#x4E3A;&#x4E00;&#x4E2A; Lucene &#x7D22;&#x5F15;&#xFF0C;&#x4F1A;&#x6D88;&#x8017;&#x4E00;&#x5B9A;&#x6587;&#x4EF6;&#x53E5;&#x67C4;&#x3001;&#x5185;&#x5B58;&#x3001;&#x4EE5;&#x53CA; CPU &#x8FD0;&#x8F6C;&#x3002;</li>
<li>&#x6BCF;&#x4E00;&#x4E2A;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x90FD;&#x9700;&#x8981;&#x547D;&#x4E2D;&#x7D22;&#x5F15;&#x4E2D;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x5982;&#x679C;&#x6BCF;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x90FD;&#x5904;&#x4E8E;&#x4E0D;&#x540C;&#x7684;&#x8282;&#x70B9;&#x8FD8;&#x597D;&#xFF0C; &#x4F46;&#x5982;&#x679C;&#x591A;&#x4E2A;&#x5206;&#x7247;&#x90FD;&#x9700;&#x8981;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x7ADE;&#x4E89;&#x4F7F;&#x7528;&#x76F8;&#x540C;&#x7684;&#x8D44;&#x6E90;&#x5C31;&#x6709;&#x4E9B;&#x7CDF;&#x7CD5;&#x4E86;&#x3002;</li>
<li>&#x7528;&#x4E8E;&#x8BA1;&#x7B97;&#x76F8;&#x5173;&#x5EA6;&#x7684;&#x8BCD;&#x9879;&#x7EDF;&#x8BA1;&#x4FE1;&#x606F;&#x662F;&#x57FA;&#x4E8E;&#x5206;&#x7247;&#x7684;&#x3002;&#x5982;&#x679C;&#x6709;&#x8BB8;&#x591A;&#x5206;&#x7247;&#xFF0C;&#x6BCF;&#x4E00;&#x4E2A;&#x90FD;&#x53EA;&#x6709;&#x5F88;&#x5C11;&#x7684;&#x6570;&#x636E;&#x4F1A;&#x5BFC;&#x81F4;&#x5F88;&#x4F4E;&#x7684;&#x76F8;&#x5173;&#x5EA6;&#x3002;<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x9002;&#x5F53;&#x7684;&#x9884;&#x5206;&#x914D;&#x662F;&#x597D;&#x7684;&#x3002;&#x4F46;&#x4E0A;&#x5343;&#x4E2A;&#x5206;&#x7247;&#x5C31;&#x6709;&#x4E9B;&#x7CDF;&#x7CD5;&#x3002;&#x6211;&#x4EEC;&#x5F88;&#x96BE;&#x53BB;&#x5B9A;&#x4E49;&#x5206;&#x7247;&#x662F;&#x5426;&#x8FC7;&#x591A;&#x4E86;&#xFF0C;&#x8FD9;&#x53D6;&#x51B3;&#x4E8E;&#x5B83;&#x4EEC;&#x7684;&#x5927;&#x5C0F;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x53BB;&#x4F7F;&#x7528;&#x5B83;&#x4EEC;&#x3002; &#x4E00;&#x767E;&#x4E2A;&#x5206;&#x7247;&#x4F46;&#x5F88;&#x5C11;&#x4F7F;&#x7528;&#x8FD8;&#x597D;&#xFF0C;&#x4E24;&#x4E2A;&#x5206;&#x7247;&#x4F46;&#x975E;&#x5E38;&#x9891;&#x7E41;&#x5730;&#x4F7F;&#x7528;&#x6709;&#x53EF;&#x80FD;&#x5C31;&#x6709;&#x70B9;&#x591A;&#x4E86;&#x3002; &#x76D1;&#x63A7;&#x4F60;&#x7684;&#x8282;&#x70B9;&#x4FDD;&#x8BC1;&#x5B83;&#x4EEC;&#x7559;&#x6709;&#x8DB3;&#x591F;&#x7684;&#x7A7A;&#x95F2;&#x8D44;&#x6E90;&#x6765;&#x5904;&#x7406;&#x4E00;&#x4E9B;&#x7279;&#x6B8A;&#x60C5;&#x51B5;&#x3002;  </p>
</blockquote>
</li>
</ul>
<p>&#x6A2A;&#x5411;&#x6269;&#x5C55;&#x5E94;&#x5F53;&#x5206;&#x9636;&#x6BB5;&#x8FDB;&#x884C;&#x3002;&#x4E3A;&#x4E0B;&#x4E00;&#x9636;&#x6BB5;&#x51C6;&#x5907;&#x597D;&#x8DB3;&#x591F;&#x7684;&#x8D44;&#x6E90;&#x3002; &#x53EA;&#x6709;&#x5F53;&#x4F60;&#x8FDB;&#x5165;&#x5230;&#x4E0B;&#x4E00;&#x4E2A;&#x9636;&#x6BB5;&#xFF0C;&#x4F60;&#x624D;&#x6709;&#x65F6;&#x95F4;&#x601D;&#x8003;&#x9700;&#x8981;&#x4F5C;&#x51FA;&#x54EA;&#x4E9B;&#x6539;&#x53D8;&#x6765;&#x8FBE;&#x5230;&#x8FD9;&#x4E2A;&#x9636;&#x6BB5;&#x3002;</p>
<h3 id="&#x5BB9;&#x91CF;&#x89C4;&#x5212;"><a name="&#x5BB9;&#x91CF;&#x89C4;&#x5212;" class="anchor-navigation-ex-anchor" href="#&#x5BB9;&#x91CF;&#x89C4;&#x5212;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5BB9;&#x91CF;&#x89C4;&#x5212;</h3>
<p>&#x5982;&#x679C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x592A;&#x5C11;&#x800C; 1000 &#x4E2A;&#x53C8;&#x592A;&#x591A;&#xFF0C;&#x90A3;&#x4E48;&#x6211;&#x600E;&#x4E48;&#x77E5;&#x9053;&#x6211;&#x9700;&#x8981;&#x591A;&#x5C11;&#x5206;&#x7247;&#x5462;&#xFF1F; &#x4E00;&#x822C;&#x60C5;&#x51B5;&#x4E0B;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x65E0;&#x6CD5;&#x56DE;&#x7B54;&#x7684;&#x95EE;&#x9898;&#x3002;&#x56E0;&#x4E3A;&#x5B9E;&#x5728;&#x6709;&#x592A;&#x591A;&#x76F8;&#x5173;&#x7684;&#x56E0;&#x7D20;&#x4E86;&#xFF1A;&#x4F60;&#x4F7F;&#x7528;&#x7684;&#x786C;&#x4EF6;&#x3001;&#x6587;&#x6863;&#x7684;&#x5927;&#x5C0F;&#x548C;&#x590D;&#x6742;&#x5EA6;&#x3001;&#x6587;&#x6863;&#x7684;&#x7D22;&#x5F15;&#x5206;&#x6790;&#x65B9;&#x5F0F;&#x3001;&#x8FD0;&#x884C;&#x7684;&#x67E5;&#x8BE2;&#x7C7B;&#x578B;&#x3001;&#x6267;&#x884C;&#x7684;&#x805A;&#x5408;&#x4EE5;&#x53CA;&#x4F60;&#x7684;&#x6570;&#x636E;&#x6A21;&#x578B;&#x7B49;&#x7B49;&#x3002;</p>
<p>&#x5E78;&#x8FD0;&#x7684;&#x662F;&#xFF0C;&#x5728;&#x7279;&#x5B9A;&#x573A;&#x666F;&#x4E0B;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x5BB9;&#x6613;&#x56DE;&#x7B54;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x5C24;&#x5176;&#x662F;&#x4F60;&#x81EA;&#x5DF1;&#x7684;&#x573A;&#x666F;&#xFF1A;</p>
<ol>
<li>&#x57FA;&#x4E8E;&#x4F60;&#x51C6;&#x5907;&#x7528;&#x4E8E;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x7684;&#x786C;&#x4EF6;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x5355;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x3002;</li>
<li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x548C;&#x4F60;&#x51C6;&#x5907;&#x7528;&#x4E8E;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x76F8;&#x540C;&#x914D;&#x7F6E;&#x548C;&#x5206;&#x6790;&#x5668;&#x7684;&#x7D22;&#x5F15;&#xFF0C;&#x4F46;&#x8BA9;&#x5B83;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x65E0;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002;</li>
<li>&#x7D22;&#x5F15;&#x5B9E;&#x9645;&#x7684;&#x6587;&#x6863;&#xFF08;&#x6216;&#x8005;&#x5C3D;&#x53EF;&#x80FD;&#x63A5;&#x8FD1;&#x5B9E;&#x9645;&#xFF09;&#x3002;</li>
<li>&#x8FD0;&#x884C;&#x5B9E;&#x9645;&#x7684;&#x67E5;&#x8BE2;&#x548C;&#x805A;&#x5408;&#xFF08;&#x6216;&#x8005;&#x5C3D;&#x53EF;&#x80FD;&#x63A5;&#x8FD1;&#x5B9E;&#x9645;&#xFF09;&#x3002;</li>
</ol>
<p>&#x57FA;&#x672C;&#x6765;&#x8BF4;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x590D;&#x5236;&#x771F;&#x5B9E;&#x73AF;&#x5883;&#x7684;&#x4F7F;&#x7528;&#x65B9;&#x5F0F;&#x5E76;&#x5C06;&#x5B83;&#x4EEC;&#x5168;&#x90E8;&#x538B;&#x7F29;&#x5230;&#x5355;&#x4E2A;&#x5206;&#x7247;&#x4E0A;&#x76F4;&#x5230;&#x5B83;&#x201C;&#x6302;&#x6389;&#x3002;&#x201D; &#x5B9E;&#x9645;&#x4E0A; <em>&#x6302;&#x6389;</em> &#x7684;&#x5B9A;&#x4E49;&#x4E5F;&#x53D6;&#x51B3;&#x4E8E;&#x4F60;&#xFF1A;&#x4E00;&#x4E9B;&#x7528;&#x6237;&#x9700;&#x8981;&#x6240;&#x6709;&#x54CD;&#x5E94;&#x5728; 50 &#x6BEB;&#x79D2;&#x5185;&#x8FD4;&#x56DE;&#xFF1B;&#x53E6;&#x4E00;&#x4E9B;&#x5219;&#x4E50;&#x4E8E;&#x7B49;&#x4E0A; 5 &#x79D2;&#x949F;&#x3002;</p>
<p>&#x4E00;&#x65E6;&#x4F60;&#x5B9A;&#x4E49;&#x597D;&#x4E86;&#x5355;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x5BB9;&#x91CF;&#xFF0C;&#x5F88;&#x5BB9;&#x6613;&#x5C31;&#x53EF;&#x4EE5;&#x63A8;&#x7B97;&#x51FA;&#x6574;&#x4E2A;&#x7D22;&#x5F15;&#x7684;&#x5206;&#x7247;&#x6570;&#x3002; &#x7528;&#x4F60;&#x9700;&#x8981;&#x7D22;&#x5F15;&#x7684;&#x6570;&#x636E;&#x603B;&#x6570;&#x52A0;&#x4E0A;&#x4E00;&#x90E8;&#x5206;&#x9884;&#x671F;&#x7684;&#x589E;&#x957F;&#xFF0C;&#x9664;&#x4EE5;&#x5355;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x5BB9;&#x91CF;&#xFF0C;&#x7ED3;&#x679C;&#x5C31;&#x662F;&#x4F60;&#x9700;&#x8981;&#x7684;&#x4E3B;&#x5206;&#x7247;&#x4E2A;&#x6570;&#x3002;</p>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x5BB9;&#x91CF;&#x89C4;&#x5212;&#x4E0D;&#x5E94;&#x5F53;&#x4F5C;&#x4E3A;&#x4F60;&#x7684;&#x7B2C;&#x4E00;&#x6B65;&#x3002;</p>
<p> &#x5148;&#x770B;&#x770B;&#x6709;&#x6CA1;&#x6709;&#x529E;&#x6CD5;&#x4F18;&#x5316;&#x4F60;&#x5BF9; Elasticsearch &#x7684;&#x4F7F;&#x7528;&#x65B9;&#x5F0F;&#x3002;&#x4E5F;&#x8BB8;&#x4F60;&#x6709;&#x4F4E;&#x6548;&#x7684;&#x67E5;&#x8BE2;&#xFF0C;&#x7F3A;&#x5C11;&#x8DB3;&#x591F;&#x7684;&#x5185;&#x5B58;&#xFF0C;&#x53C8;&#x6216;&#x8005;&#x4F60;&#x5F00;&#x542F;&#x4E86; swap&#xFF1F;</p>
<p> &#x6211;&#x4EEC;&#x89C1;&#x8FC7;&#x4E00;&#x4E9B;&#x65B0;&#x624B;&#x5BF9;&#x4E8E;&#x521D;&#x59CB;&#x6027;&#x80FD;&#x611F;&#x5230;&#x6CAE;&#x4E27;&#xFF0C;&#x7ACB;&#x5373;&#x5C31;&#x7740;&#x624B;&#x8C03;&#x4F18;&#x5783;&#x573E;&#x56DE;&#x6536;&#x53C8;&#x6216;&#x8005;&#x662F;&#x7EBF;&#x7A0B;&#x6570;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5904;&#x7406;&#x7B80;&#x5355;&#x95EE;&#x9898;&#x4F8B;&#x5982;&#x53BB;&#x6389;&#x901A;&#x914D;&#x7B26;&#x67E5;&#x8BE2;&#x3002;  </p>
</blockquote>
<h3 id="&#x526F;&#x672C;&#x5206;&#x7247;"><a name="&#x526F;&#x672C;&#x5206;&#x7247;" class="anchor-navigation-ex-anchor" href="#&#x526F;&#x672C;&#x5206;&#x7247;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x526F;&#x672C;&#x5206;&#x7247;</h3>
<p>&#x76EE;&#x524D;&#x4E3A;&#x6B62;&#x6211;&#x4EEC;&#x53EA;&#x8BA8;&#x8BBA;&#x8FC7;&#x4E3B;&#x5206;&#x7247;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x8EAB;&#x8FB9;&#x8FD8;&#x6709;&#x53E6;&#x4E00;&#x4E2A;&#x5DE5;&#x5177;&#xFF1A;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002; &#x526F;&#x672C;&#x5206;&#x7247;&#x7684;&#x4E3B;&#x8981;&#x76EE;&#x7684;&#x5C31;&#x662F;&#x4E3A;&#x4E86;&#x6545;&#x969C;&#x8F6C;&#x79FB;&#xFF0C;&#x6B63;&#x5982;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/distributed-cluster.html" target="_blank"><em>&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;</em></a> &#x4E2D;&#x8BA8;&#x8BBA;&#x7684;&#xFF1A;&#x5982;&#x679C;&#x6301;&#x6709;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x8282;&#x70B9;&#x6302;&#x6389;&#x4E86;&#xFF0C;&#x4E00;&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#x5C31;&#x4F1A;&#x664B;&#x5347;&#x4E3A;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x89D2;&#x8272;&#x3002;</p>
<p>&#x5728;&#x7D22;&#x5F15;&#x5199;&#x5165;&#x65F6;&#xFF0C;&#x526F;&#x672C;&#x5206;&#x7247;&#x505A;&#x7740;&#x4E0E;&#x4E3B;&#x5206;&#x7247;&#x76F8;&#x540C;&#x7684;&#x5DE5;&#x4F5C;&#x3002;&#x65B0;&#x6587;&#x6863;&#x9996;&#x5148;&#x88AB;&#x7D22;&#x5F15;&#x8FDB;&#x4E3B;&#x5206;&#x7247;&#x7136;&#x540E;&#x518D;&#x540C;&#x6B65;&#x5230;&#x5176;&#x5B83;&#x6240;&#x6709;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002;&#x589E;&#x52A0;&#x526F;&#x672C;&#x6570;&#x5E76;&#x4E0D;&#x4F1A;&#x589E;&#x52A0;&#x7D22;&#x5F15;&#x5BB9;&#x91CF;&#x3002;</p>
<p>&#x65E0;&#x8BBA;&#x5982;&#x4F55;&#xFF0C;&#x526F;&#x672C;&#x5206;&#x7247;&#x53EF;&#x4EE5;&#x670D;&#x52A1;&#x4E8E;&#x8BFB;&#x8BF7;&#x6C42;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x7684;&#x7D22;&#x5F15;&#x4E5F;&#x5982;&#x5E38;&#x89C1;&#x7684;&#x90A3;&#x6837;&#x662F;&#x504F;&#x5411;&#x67E5;&#x8BE2;&#x4F7F;&#x7528;&#x7684;&#xFF0C;&#x90A3;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x589E;&#x52A0;&#x526F;&#x672C;&#x7684;&#x6570;&#x76EE;&#x6765;&#x63D0;&#x5347;&#x67E5;&#x8BE2;&#x6027;&#x80FD;&#xFF0C;&#x4F46;&#x4E5F;&#x8981;&#x4E3A;&#x6B64; <em>&#x589E;&#x52A0;&#x989D;&#x5916;&#x7684;&#x786C;&#x4EF6;&#x8D44;&#x6E90;</em>&#x3002;</p>
<p>&#x8BA9;&#x6211;&#x4EEC;&#x56DE;&#x5230;&#x90A3;&#x4E2A;&#x6709;&#x7740;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x7D22;&#x5F15;&#x7684;&#x4F8B;&#x5B50;&#x3002;&#x6211;&#x901A;&#x8FC7;&#x589E;&#x52A0;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#x6765;&#x63D0;&#x5347;&#x7D22;&#x5F15;&#x5BB9;&#x91CF;&#x3002; &#x589E;&#x52A0;&#x989D;&#x5916;&#x7684;&#x8282;&#x70B9;&#x4E0D;&#x4F1A;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x63D0;&#x5347;&#x7D22;&#x5F15;&#x5199;&#x5165;&#x80FD;&#x529B;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x589E;&#x52A0;&#x526F;&#x672C;&#x6570;&#x5728;&#x641C;&#x7D22;&#x65F6;&#x5229;&#x7528;&#x989D;&#x5916;&#x7684;&#x786C;&#x4EF6;&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index/_settings
{
  <span class="hljs-string">&quot;number_of_replicas&quot;</span>: <span class="hljs-number">1</span>
}
</code></pre>
<p>&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#xFF0C;&#x52A0;&#x4E0A;&#x6BCF;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x4E00;&#x4E2A;&#x526F;&#x672C;&#xFF0C;&#x603B;&#x5171;&#x7ED9;&#x4E88;&#x6211;&#x4EEC;&#x56DB;&#x4E2A;&#x5206;&#x7247;&#xFF1A;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x4E00;&#x4E2A;&#xFF0C;&#x5982;&#x56FE;&#x6240;&#x793A; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/replica-shards.html#img-four-nodes" target="_blank">&#x56FE; 51 &#x201C;&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x4E00;&#x4EFD;&#x526F;&#x672C;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x5728;&#x56DB;&#x4E2A;&#x8282;&#x70B9;&#x4E2D;&#x6A2A;&#x5411;&#x6269;&#x5C55;&#x201D;</a>&#x3002;</p>
<p><strong>&#x56FE; 51. &#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x4E00;&#x4EFD;&#x526F;&#x672C;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x5728;&#x56DB;&#x4E2A;&#x8282;&#x70B9;&#x4E2D;&#x6A2A;&#x5411;&#x6269;&#x5C55;</strong></p>
<p><img src="assets/elas_4403.png" alt="&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x4E00;&#x4EFD;&#x526F;&#x672C;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x5728;&#x56DB;&#x4E2A;&#x8282;&#x70B9;&#x4E2D;&#x6A2A;&#x5411;&#x6269;&#x5C55;"></p>
<p><strong>&#x901A;&#x8FC7;&#x526F;&#x672C;&#x8FDB;&#x884C;&#x8D1F;&#x8F7D;&#x5747;&#x8861;</strong></p>
<p>&#x641C;&#x7D22;&#x6027;&#x80FD;&#x53D6;&#x51B3;&#x4E8E;&#x6700;&#x6162;&#x7684;&#x8282;&#x70B9;&#x7684;&#x54CD;&#x5E94;&#x65F6;&#x95F4;&#xFF0C;&#x6240;&#x4EE5;&#x5C1D;&#x8BD5;&#x5747;&#x8861;&#x6240;&#x6709;&#x8282;&#x70B9;&#x7684;&#x8D1F;&#x8F7D;&#x662F;&#x4E00;&#x4E2A;&#x597D;&#x60F3;&#x6CD5;&#x3002; &#x5982;&#x679C;&#x6211;&#x4EEC;&#x53EA;&#x662F;&#x589E;&#x52A0;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x800C;&#x4E0D;&#x662F;&#x4E24;&#x4E2A;&#xFF0C;&#x6700;&#x7EC8;&#x6211;&#x4EEC;&#x4F1A;&#x6709;&#x4E24;&#x4E2A;&#x8282;&#x70B9;&#x5404;&#x6301;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x800C;&#x53E6;&#x4E00;&#x4E2A;&#x6301;&#x6709;&#x4E24;&#x4E2A;&#x5206;&#x7247;&#x505A;&#x7740;&#x4E24;&#x500D;&#x7684;&#x5DE5;&#x4F5C;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x8C03;&#x6574;&#x526F;&#x672C;&#x6570;&#x91CF;&#x6765;&#x5E73;&#x8861;&#x8FD9;&#x4E9B;&#x3002;&#x901A;&#x8FC7;&#x5206;&#x914D;&#x4E24;&#x4EFD;&#x526F;&#x672C;&#x800C;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#xFF0C;&#x6700;&#x7EC8;&#x6211;&#x4EEC;&#x4F1A;&#x62E5;&#x6709;&#x516D;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x521A;&#x597D;&#x53EF;&#x4EE5;&#x5E73;&#x5747;&#x5206;&#x7ED9;&#x4E09;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x5982;&#x56FE;&#x6240;&#x793A; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/replica-shards.html#img-three-nodes" target="_blank">&#x56FE; 52 &#x201C;&#x901A;&#x8FC7;&#x8C03;&#x6574;&#x526F;&#x672C;&#x6570;&#x6765;&#x5747;&#x8861;&#x8282;&#x70B9;&#x8D1F;&#x8F7D;&#x201D;</a>&#xFF1A;</p>
<pre><code class="lang-json">PUT /my_index/_settings
{
  <span class="hljs-string">&quot;number_of_replicas&quot;</span>: <span class="hljs-number">2</span>
}
</code></pre>
<p>&#x4F5C;&#x4E3A;&#x5956;&#x52B1;&#xFF0C;&#x6211;&#x4EEC;&#x540C;&#x65F6;&#x63D0;&#x5347;&#x4E86;&#x6211;&#x4EEC;&#x7684;&#x53EF;&#x7528;&#x6027;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5BB9;&#x5FCD;&#x4E22;&#x5931;&#x4E24;&#x4E2A;&#x8282;&#x70B9;&#x800C;&#x4ECD;&#x7136;&#x4FDD;&#x6301;&#x4E00;&#x4EFD;&#x5B8C;&#x6574;&#x6570;&#x636E;&#x7684;&#x62F7;&#x8D1D;&#x3002;</p>
<p><strong>&#x56FE; 52. &#x901A;&#x8FC7;&#x8C03;&#x6574;&#x526F;&#x672C;&#x6570;&#x6765;&#x5747;&#x8861;&#x8282;&#x70B9;&#x8D1F;&#x8F7D;</strong></p>
<p><img src="assets/elas_4404.png" alt="&#x901A;&#x8FC7;&#x8C03;&#x6574;&#x526F;&#x672C;&#x6570;&#x6765;&#x5747;&#x8861;&#x8282;&#x70B9;&#x8D1F;&#x8F7D;"></p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x4E8B;&#x5B9E;&#x4E0A;&#x8282;&#x70B9; 3 &#x6301;&#x6709;&#x4E24;&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF0C;&#x7136;&#x800C;&#x6CA1;&#x6709;&#x4E3B;&#x5206;&#x7247;&#x5E76;&#x4E0D;&#x91CD;&#x8981;&#x3002;&#x526F;&#x672C;&#x5206;&#x7247;&#x4E0E;&#x4E3B;&#x5206;&#x7247;&#x505A;&#x7740;&#x76F8;&#x540C;&#x7684;&#x5DE5;&#x4F5C;&#xFF1B;&#x5B83;&#x4EEC;&#x53EA;&#x662F;&#x626E;&#x6F14;&#x7740;&#x7565;&#x5FAE;&#x4E0D;&#x540C;&#x7684;&#x89D2;&#x8272;&#x3002;&#x6CA1;&#x6709;&#x5FC5;&#x8981;&#x786E;&#x4FDD;&#x4E3B;&#x5206;&#x7247;&#x5747;&#x5300;&#x5730;&#x5206;&#x5E03;&#x5728;&#x6240;&#x6709;&#x8282;&#x70B9;&#x4E2D;&#x3002;  </p>
</blockquote>
<h3 id="&#x591A;&#x7D22;&#x5F15;"><a name="&#x591A;&#x7D22;&#x5F15;" class="anchor-navigation-ex-anchor" href="#&#x591A;&#x7D22;&#x5F15;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x591A;&#x7D22;&#x5F15;</h3>
<p>&#x6700;&#x540E;&#xFF0C;&#x8BB0;&#x4F4F;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x89C4;&#x5219;&#x9650;&#x5236;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x53EA;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x3002; &#x5F53;&#x6211;&#x4EEC;&#x53D1;&#x8D77;&#x4E00;&#x4E2A;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x65F6;&#xFF0C;&#x5B83;&#x88AB;&#x8F6C;&#x53D1;&#x81F3;&#x7D22;&#x5F15;&#x4E2D;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x4E00;&#x4EFD;&#x62F7;&#x8D1D;&#xFF08;&#x4E00;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x6216;&#x4E00;&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF09;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x5411;&#x591A;&#x4E2A;&#x7D22;&#x5F15;&#x53D1;&#x51FA;&#x540C;&#x6837;&#x7684;&#x8BF7;&#x6C42;&#xFF0C;&#x4F1A;&#x53D1;&#x751F;&#x5B8C;&#x5168;&#x76F8;&#x540C;&#x7684;&#x4E8B;&#x60C5;&#x2014;&#x2014;&#x53EA;&#x4E0D;&#x8FC7;&#x4F1A;&#x6D89;&#x53CA;&#x66F4;&#x591A;&#x7684;&#x5206;&#x7247;&#x3002;</p>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x641C;&#x7D22; 1 &#x4E2A;&#x6709;&#x7740; 50 &#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x4E0E;&#x641C;&#x7D22; 50 &#x4E2A;&#x6BCF;&#x4E2A;&#x90FD;&#x6709; 1 &#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x5B8C;&#x5168;&#x7B49;&#x4EF7;&#xFF1A;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x5747;&#x547D;&#x4E2D; 50 &#x4E2A;&#x5206;&#x7247;&#x3002;  </p>
</blockquote>
<p>&#x5F53;&#x4F60;&#x9700;&#x8981;&#x5728;&#x4E0D;&#x505C;&#x670D;&#x52A1;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x589E;&#x52A0;&#x5BB9;&#x91CF;&#x65F6;&#xFF0C;&#x4E0B;&#x9762;&#x6709;&#x4E00;&#x4E9B;&#x6709;&#x7528;&#x7684;&#x5EFA;&#x8BAE;&#x3002;&#x76F8;&#x8F83;&#x4E8E;&#x5C06;&#x6570;&#x636E;&#x8FC1;&#x79FB;&#x5230;&#x66F4;&#x5927;&#x7684;&#x7D22;&#x5F15;&#x4E2D;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x4EC5;&#x4EC5;&#x505A;&#x4E0B;&#x9762;&#x8FD9;&#x4E9B;&#x64CD;&#x4F5C;&#xFF1A;</p>
<ul>
<li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x7D22;&#x5F15;&#x6765;&#x5B58;&#x50A8;&#x65B0;&#x7684;&#x6570;&#x636E;&#x3002;</li>
<li>&#x540C;&#x65F6;&#x641C;&#x7D22;&#x4E24;&#x4E2A;&#x7D22;&#x5F15;&#x6765;&#x83B7;&#x53D6;&#x65B0;&#x6570;&#x636E;&#x548C;&#x65E7;&#x6570;&#x636E;&#x3002;</li>
</ul>
<p>&#x5B9E;&#x9645;&#x4E0A;&#xFF0C;&#x901A;&#x8FC7;&#x4E00;&#x70B9;&#x9884;&#x5148;&#x8BA1;&#x5212;&#xFF0C;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x65B0;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4E00;&#x79CD;&#x5B8C;&#x5168;&#x900F;&#x660E;&#x7684;&#x65B9;&#x5F0F;&#x5B8C;&#x6210;&#xFF0C;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6839;&#x672C;&#x4E0D;&#x4F1A;&#x5BDF;&#x89C9;&#x5230;&#x4EFB;&#x4F55;&#x7684;&#x6539;&#x53D8;&#x3002;</p>
<p>&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-aliases.html" target="_blank">&#x7D22;&#x5F15;&#x522B;&#x540D;&#x548C;&#x96F6;&#x505C;&#x673A;</a>&#xFF0C;&#x6211;&#x4EEC;&#x63D0;&#x5230;&#x8FC7;&#x4F7F;&#x7528;&#x7D22;&#x5F15;&#x522B;&#x540D;&#x6765;&#x6307;&#x5411;&#x5F53;&#x524D;&#x7248;&#x672C;&#x7684;&#x7D22;&#x5F15;&#x3002; &#x4E3E;&#x4F8B;&#x6765;&#x8BF4;&#xFF0C;&#x7ED9;&#x4F60;&#x7684;&#x7D22;&#x5F15;&#x547D;&#x540D;&#x4E3A; <code>tweets_v1</code> &#x800C;&#x4E0D;&#x662F; <code>tweets</code> &#x3002;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4F1A;&#x4E0E; <code>tweets</code> &#x8FDB;&#x884C;&#x4EA4;&#x4E92;&#xFF0C;&#x4F46;&#x4E8B;&#x5B9E;&#x4E0A;&#x5B83;&#x662F;&#x4E00;&#x4E2A;&#x6307;&#x5411; <code>tweets_v1</code> &#x7684;&#x522B;&#x540D;&#x3002; &#x8FD9;&#x5141;&#x8BB8;&#x4F60;&#x5C06;&#x522B;&#x540D;&#x5207;&#x6362;&#x81F3;&#x4E00;&#x4E2A;&#x66F4;&#x65B0;&#x7248;&#x672C;&#x7684;&#x7D22;&#x5F15;&#x800C;&#x4FDD;&#x6301;&#x670D;&#x52A1;&#x8FD0;&#x8F6C;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x7C7B;&#x4F3C;&#x7684;&#x6280;&#x672F;&#x901A;&#x8FC7;&#x589E;&#x52A0;&#x4E00;&#x4E2A;&#x65B0;&#x7D22;&#x5F15;&#x6765;&#x6269;&#x5C55;&#x5BB9;&#x91CF;&#x3002;&#x8FD9;&#x9700;&#x8981;&#x4E00;&#x70B9;&#x70B9;&#x89C4;&#x5212;&#xFF0C;&#x56E0;&#x4E3A;&#x4F60;&#x9700;&#x8981;&#x4E24;&#x4E2A;&#x522B;&#x540D;&#xFF1A;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;&#x641C;&#x7D22;&#x53E6;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;&#x7D22;&#x5F15;&#x6570;&#x636E;&#xFF1A;</p>
<pre><code class="lang-json">PUT /tweets_1/_alias/tweets_search   &lt;<span class="hljs-number">1</span>&gt;
PUT /tweets_1/_alias/tweets_index    &lt;<span class="hljs-number">2</span>&gt;
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <img src="assets/2.png" alt="img">  <code>tweets_search</code> &#x4E0E; <code>tweets_index</code> &#x8FD9;&#x4E24;&#x4E2A;&#x522B;&#x540D;&#x90FD;&#x6307;&#x5411;&#x7D22;&#x5F15; <code>tweets_1</code> &#x3002;   </p>
</blockquote>
<p>&#x65B0;&#x6587;&#x6863;&#x5E94;&#x5F53;&#x7D22;&#x5F15;&#x81F3; <code>tweets_index</code> &#xFF0C;&#x540C;&#x65F6;&#xFF0C;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x5E94;&#x5F53;&#x5BF9;&#x522B;&#x540D; <code>tweets_search</code> &#x53D1;&#x51FA;&#x3002;&#x76EE;&#x524D;&#xFF0C;&#x8FD9;&#x4E24;&#x4E2A;&#x522B;&#x540D;&#x6307;&#x5411;&#x540C;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x3002;</p>
<p>&#x5F53;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x989D;&#x5916;&#x5BB9;&#x91CF;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x540D;&#x4E3A; <code>tweets_2</code> &#x7684;&#x7D22;&#x5F15;&#xFF0C;&#x5E76;&#x4E14;&#x50CF;&#x8FD9;&#x6837;&#x66F4;&#x65B0;&#x522B;&#x540D;&#xFF1A;</p>
<pre><code class="lang-json">POST /_aliases
{
  <span class="hljs-string">&quot;actions&quot;</span>: [
    { <span class="hljs-string">&quot;add&quot;</span>:    { <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;tweets_2&quot;</span>, <span class="hljs-string">&quot;alias&quot;</span>: <span class="hljs-string">&quot;tweets_search&quot;</span> }},    &lt;1&gt;
    { &quot;remove&quot;: { &quot;index&quot;: &quot;tweets_1&quot;, &quot;alias&quot;: &quot;tweets_index&quot;  }},    &lt;2&gt;
    { &quot;add&quot;:    { &quot;index&quot;: &quot;tweets_2&quot;, &quot;alias&quot;: &quot;tweets_index&quot;  }}     &lt;3&gt;
  ]
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x6DFB;&#x52A0;&#x7D22;&#x5F15; <code>tweets_2</code> &#x5230;&#x522B;&#x540D; <code>tweets_search</code> &#x3002; </p>
<p> <img src="assets/2.png" alt="img"> <img src="assets/3.png" alt="img">  &#x5C06;&#x522B;&#x540D; <code>tweets_index</code> &#x7531; <code>tweets_1</code> &#x5207;&#x6362;&#x81F3; <code>tweets_2</code> &#x3002;  </p>
</blockquote>
<p>&#x4E00;&#x4E2A;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x53EF;&#x4EE5;&#x4EE5;&#x591A;&#x4E2A;&#x7D22;&#x5F15;&#x4E3A;&#x76EE;&#x6807;&#xFF0C;&#x6240;&#x4EE5;&#x5C06;&#x641C;&#x7D22;&#x522B;&#x540D;&#x6307;&#x5411; <code>tweets_1</code> &#x4EE5;&#x53CA; <code>tweets_2</code> &#x662F;&#x5B8C;&#x5168;&#x6709;&#x6548;&#x7684;&#x3002; &#x7136;&#x800C;&#xFF0C;&#x7D22;&#x5F15;&#x5199;&#x5165;&#x8BF7;&#x6C42;&#x53EA;&#x80FD;&#x4EE5;&#x5355;&#x4E2A;&#x7D22;&#x5F15;&#x4E3A;&#x76EE;&#x6807;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x6211;&#x4EEC;&#x5FC5;&#x987B;&#x5C06;&#x7D22;&#x5F15;&#x5199;&#x5165;&#x7684;&#x522B;&#x540D;&#x53EA;&#x6307;&#x5411;&#x65B0;&#x7684;&#x7D22;&#x5F15;&#x3002;</p>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x4E00;&#x4E2A;&#x6587;&#x6863; <code>GET</code> &#x8BF7;&#x6C42;&#xFF0C;&#x50CF;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x5199;&#x5165;&#x8BF7;&#x6C42;&#x90A3;&#x6837;&#xFF0C;&#x53EA;&#x80FD;&#x4EE5;&#x5355;&#x4E2A;&#x7D22;&#x5F15;&#x4E3A;&#x76EE;&#x6807;&#x3002; &#x8FD9;&#x5BFC;&#x81F4;&#x5728;&#x901A;&#x8FC7;ID&#x83B7;&#x53D6;&#x6587;&#x6863;&#x8FD9;&#x6837;&#x7684;&#x573A;&#x666F;&#x4E0B;&#x6709;&#x4E00;&#x70B9;&#x590D;&#x6742;&#x3002;&#x4F5C;&#x4E3A;&#x4EE3;&#x66FF;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5BF9; <code>tweets_1</code> &#x4EE5;&#x53CA; <code>tweets_2</code> &#x8FD0;&#x884C;&#x4E00;&#x4E2A; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/query-dsl-ids-query.html" target="_blank"><code>ids</code> &#x67E5;&#x8BE2;</a> &#x641C;&#x7D22;&#x8BF7;&#x6C42;&#xFF0C; &#x6216;&#x8005; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docs-multi-get.html" target="_blank"><code>multi-get</code></a> &#x8BF7;&#x6C42;&#x3002;  </p>
</blockquote>
<p>&#x5728;&#x670D;&#x52A1;&#x8FD0;&#x884C;&#x4E2D;&#x4F7F;&#x7528;&#x591A;&#x7D22;&#x5F15;&#x6765;&#x6269;&#x5C55;&#x7D22;&#x5F15;&#x5BB9;&#x91CF;&#x5BF9;&#x4E8E;&#x4E00;&#x4E9B;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x6709;&#x7740;&#x7279;&#x522B;&#x7684;&#x597D;&#x5904;&#xFF0C;&#x50CF;&#x6211;&#x4EEC;&#x5C06;&#x5728;&#x4E0B;&#x4E00;&#x8282;&#x4E2D;&#x8BA8;&#x8BBA;&#x7684;&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;&#x4F8B;&#x5982;&#x65E5;&#x5FD7;&#x6216;&#x793E;&#x4EA4;&#x4E8B;&#x4EF6;&#x6D41;&#x3002;</p>
<h3 id="&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;"><a name="&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;" class="anchor-navigation-ex-anchor" href="#&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;</h3>
<p>Elasticsearch &#x7684;&#x5E38;&#x7528;&#x6848;&#x4F8B;&#x4E4B;&#x4E00;&#x4FBF;&#x662F;&#x65E5;&#x5FD7;&#x8BB0;&#x5F55;&#xFF0C; &#x5B83;&#x5B9E;&#x5728;&#x592A;&#x5E38;&#x89C1;&#x4E86;&#x4EE5;&#x81F3;&#x4E8E; Elasticsearch &#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x96C6;&#x6210;&#x7684;&#x65E5;&#x5FD7;&#x5E73;&#x53F0;&#x53EB;&#x505A; <em>ELK stack</em>&#x2014; Elasticsearch&#xFF0C;Logstash&#xFF0C;&#x4EE5;&#x53CA; Kibana &#x2014;&#x2014;&#x6765;&#x8BA9;&#x8FD9;&#x9879;&#x5DE5;&#x4F5C;&#x53D8;&#x5F97;&#x7B80;&#x5355;&#x3002;</p>
<p><a href="https://www.elastic.co/guide/en/logstash/current/index.html" target="_blank">Logstash</a> &#x91C7;&#x96C6;&#x3001;&#x89E3;&#x6790;&#x65E5;&#x5FD7;&#x5E76;&#x5728;&#x5C06;&#x5B83;&#x4EEC;&#x5199;&#x5165;Elasticsearch&#x4E4B;&#x524D;&#x683C;&#x5F0F;&#x5316;&#x3002; Elasticsearch &#x626E;&#x6F14;&#x4E86;&#x4E00;&#x4E2A;&#x96C6;&#x4E2D;&#x5F0F;&#x7684;&#x65E5;&#x5FD7;&#x670D;&#x52A1;&#x89D2;&#x8272;&#xFF0C; <a href="https://www.elastic.co/guide/en/kibana/current/index.html" target="_blank">Kibana</a> &#x662F;&#x4E00;&#x4E2A; &#x56FE;&#x5F62;&#x5316;&#x524D;&#x7AEF;&#x53EF;&#x4EE5;&#x5F88;&#x5BB9;&#x6613;&#x5730;&#x5B9E;&#x65F6;&#x67E5;&#x8BE2;&#x4EE5;&#x53CA;&#x53EF;&#x89C6;&#x5316;&#x4F60;&#x7684;&#x7F51;&#x7EDC;&#x53D8;&#x5316;&#x3002;</p>
<p>&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x4E2D;&#x5927;&#x591A;&#x6570;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x90FD;&#x662F;&#x589E;&#x957F;&#x7F13;&#x6162;&#x76F8;&#x5BF9;&#x7A33;&#x5B9A;&#x7684;&#x6587;&#x6863;&#x96C6;&#x5408;&#x3002;&#x641C;&#x7D22;&#x67E5;&#x627E;&#x6700;&#x76F8;&#x5173;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x800C;&#x4E0D;&#x5173;&#x5FC3;&#x5B83;&#x662F;&#x4F55;&#x65F6;&#x521B;&#x5EFA;&#x7684;&#x3002;</p>
<p>&#x65E5;&#x5FD7;&#x2014;&#x2014;&#x4EE5;&#x53CA;&#x5176;&#x4ED6;&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;&#x6D41;&#x4F8B;&#x5982;&#x793E;&#x4EA4;&#x7F51;&#x7EDC;&#x6D3B;&#x52A8;&#x2014;&#x2014;&#x5B9E;&#x9645;&#x4E0A;&#x6709;&#x5F88;&#x5927;&#x4E0D;&#x540C;&#x3002; &#x7D22;&#x5F15;&#x4E2D;&#x6587;&#x6863;&#x6570;&#x91CF;&#x8FC5;&#x901F;&#x589E;&#x957F;&#xFF0C;&#x901A;&#x5E38;&#x968F;&#x65F6;&#x95F4;&#x52A0;&#x901F;&#x3002; &#x6587;&#x6863;&#x51E0;&#x4E4E;&#x4E0D;&#x4F1A;&#x66F4;&#x65B0;&#xFF0C;&#x57FA;&#x672C;&#x4EE5;&#x6700;&#x8FD1;&#x6587;&#x6863;&#x4E3A;&#x641C;&#x7D22;&#x76EE;&#x6807;&#x3002;&#x968F;&#x7740;&#x65F6;&#x95F4;&#x63A8;&#x79FB;&#xFF0C;&#x6587;&#x6863;&#x9010;&#x6E10;&#x5931;&#x53BB;&#x4EF7;&#x503C;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x9700;&#x8981;&#x8C03;&#x6574;&#x7D22;&#x5F15;&#x8BBE;&#x8BA1;&#x4F7F;&#x5176;&#x80FD;&#x591F;&#x5DE5;&#x4F5C;&#x4E8E;&#x8FD9;&#x79CD;&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x7684;&#x6570;&#x636E;&#x6D41;&#x3002;</p>
<p><strong>&#x6309;&#x65F6;&#x95F4;&#x8303;&#x56F4;&#x7D22;&#x5F15;</strong></p>
<p>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x4E3A;&#x6B64;&#x79CD;&#x7C7B;&#x578B;&#x7684;&#x6587;&#x6863;&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A;&#x8D85;&#x5927;&#x7D22;&#x5F15;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x80FD;&#x4F1A;&#x5F88;&#x5FEB;&#x8017;&#x5C3D;&#x5B58;&#x50A8;&#x7A7A;&#x95F4;&#x3002;&#x65E5;&#x5FD7;&#x4E8B;&#x4EF6;&#x4F1A;&#x4E0D;&#x65AD;&#x7684;&#x8FDB;&#x6765;&#xFF0C;&#x4E0D;&#x4F1A;&#x505C;&#x987F;&#x4E5F;&#x4E0D;&#x4F1A;&#x4E2D;&#x65AD;&#x3002; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/scroll.html" target="_blank"><code>scroll</code></a> &#x67E5;&#x8BE2;&#x548C;&#x6279;&#x91CF;&#x5220;&#x9664;&#x6765;&#x5220;&#x9664;&#x65E7;&#x7684;&#x4E8B;&#x4EF6;&#x3002;&#x4F46;&#x8FD9;&#x79CD;&#x65B9;&#x6CD5; <em>&#x975E;&#x5E38;&#x4F4E;&#x6548;</em> &#x3002;&#x5F53;&#x4F60;&#x5220;&#x9664;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x5B83;&#x53EA;&#x4F1A;&#x88AB; <em>&#x6807;&#x8BB0;</em> &#x4E3A;&#x88AB;&#x5220;&#x9664;&#xFF08;&#x53C2;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/dynamic-indices.html#deletes-and-updates" target="_blank">&#x5220;&#x9664;&#x548C;&#x66F4;&#x65B0;</a>&#xFF09;&#x3002; &#x5728;&#x5305;&#x542B;&#x5B83;&#x7684;&#x6BB5;&#x88AB;&#x5408;&#x5E76;&#x4E4B;&#x524D;&#x4E0D;&#x4F1A;&#x88AB;&#x7269;&#x7406;&#x5220;&#x9664;&#x3002;</p>
<p>&#x66FF;&#x4EE3;&#x65B9;&#x6848;&#x662F;&#xFF0C;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x4E00;&#x4E2A; <em>&#x65F6;&#x95F4;&#x8303;&#x56F4;&#x7D22;&#x5F15;</em> &#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x7740;&#x624B;&#x4E8E;&#x4E00;&#x4E2A;&#x6309;&#x5E74;&#x7684;&#x7D22;&#x5F15; (<code>logs_2014</code>) &#x6216;&#x6309;&#x6708;&#x7684;&#x7D22;&#x5F15; (<code>logs_2014-10</code>) &#x3002; &#x4E5F;&#x8BB8;&#x5F53;&#x4F60;&#x7684;&#x7F51;&#x9875;&#x53D8;&#x5F97;&#x5341;&#x5206;&#x7E41;&#x5FD9;&#x65F6;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x5207;&#x6362;&#x5230;&#x4E00;&#x4E2A;&#x6309;&#x5929;&#x7684;&#x7D22;&#x5F15; (<code>logs_2014-10-24</code>) &#x3002;&#x5220;&#x9664;&#x65E7;&#x6570;&#x636E;&#x5341;&#x5206;&#x7B80;&#x5355;&#xFF1A;&#x53EA;&#x9700;&#x8981;&#x5220;&#x9664;&#x65E7;&#x7684;&#x7D22;&#x5F15;&#x3002;</p>
<p>&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x6709;&#x8FD9;&#x6837;&#x7684;&#x4F18;&#x70B9;&#xFF0C;&#x5141;&#x8BB8;&#x4F60;&#x5728;&#x9700;&#x8981;&#x7684;&#x65F6;&#x5019;&#x8FDB;&#x884C;&#x6269;&#x5BB9;&#x3002;&#x4F60;&#x4E0D;&#x9700;&#x8981;&#x9884;&#x5148;&#x505A;&#x4EFB;&#x4F55;&#x8270;&#x96BE;&#x7684;&#x51B3;&#x5B9A;&#x3002;&#x6BCF;&#x5929;&#x90FD;&#x662F;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x673A;&#x4F1A;&#x6765;&#x8C03;&#x6574;&#x4F60;&#x7684;&#x7D22;&#x5F15;&#x65F6;&#x95F4;&#x8303;&#x56F4;&#x6765;&#x9002;&#x5E94;&#x5F53;&#x524D;&#x9700;&#x6C42;&#x3002; &#x5E94;&#x7528;&#x76F8;&#x540C;&#x7684;&#x903B;&#x8F91;&#x5230;&#x51B3;&#x5B9A;&#x6BCF;&#x4E2A;&#x7D22;&#x5F15;&#x7684;&#x5927;&#x5C0F;&#x4E0A;&#x3002;&#x8D77;&#x521D;&#x4E5F;&#x8BB8;&#x4F60;&#x9700;&#x8981;&#x7684;&#x4EC5;&#x4EC5;&#x662F;&#x6BCF;&#x5468;&#x4E00;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x3002;&#x8FC7;&#x4E00;&#x9635;&#x5B50;&#xFF0C;&#x4E5F;&#x8BB8;&#x4F60;&#x9700;&#x8981;&#x6BCF;&#x5929;&#x4E94;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x3002;&#x8FD9;&#x90FD;&#x4E0D;&#x91CD;&#x8981;&#x2014;&#x2014;&#x4EFB;&#x4F55;&#x65F6;&#x95F4;&#x4F60;&#x90FD;&#x53EF;&#x4EE5;&#x8C03;&#x6574;&#x5230;&#x65B0;&#x7684;&#x73AF;&#x5883;&#x3002;</p>
<p>&#x522B;&#x540D;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x66F4;&#x52A0;&#x900F;&#x660E;&#x5730;&#x5728;&#x7D22;&#x5F15;&#x95F4;&#x5207;&#x6362;&#x3002; &#x5F53;&#x521B;&#x5EFA;&#x7D22;&#x5F15;&#x65F6;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5C06; <code>logs_current</code> &#x6307;&#x5411;&#x5F53;&#x524D;&#x7D22;&#x5F15;&#x6765;&#x63A5;&#x6536;&#x65B0;&#x7684;&#x65E5;&#x5FD7;&#x4E8B;&#x4EF6;&#xFF0C; &#x5F53;&#x68C0;&#x7D22;&#x65F6;&#xFF0C;&#x66F4;&#x65B0; <code>last_3_months</code> &#x6765;&#x6307;&#x5411;&#x6240;&#x6709;&#x6700;&#x8FD1;&#x4E09;&#x4E2A;&#x6708;&#x7684;&#x7D22;&#x5F15;&#xFF1A;</p>
<pre><code class="lang-json">POST /_aliases
{
  <span class="hljs-string">&quot;actions&quot;</span>: [
    { <span class="hljs-string">&quot;add&quot;</span>:    { <span class="hljs-string">&quot;alias&quot;</span>: <span class="hljs-string">&quot;logs_current&quot;</span>,  <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;logs_2014-10&quot;</span> }},   &lt;1&gt;
    { &quot;remove&quot;: { &quot;alias&quot;: &quot;logs_current&quot;,  &quot;index&quot;: &quot;logs_2014-09&quot; }},   &lt;2&gt;
    { &quot;add&quot;:    { &quot;alias&quot;: &quot;last_3_months&quot;, &quot;index&quot;: &quot;logs_2014-10&quot; }},   &lt;3&gt;
    { &quot;remove&quot;: { &quot;alias&quot;: &quot;last_3_months&quot;, &quot;index&quot;: &quot;logs_2014-07&quot; }}    &lt;4&gt;
  ]
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> <img src="assets/2.png" alt="img"> &#x5C06; <code>logs_current</code> &#x7531;&#x4E5D;&#x6708;&#x5207;&#x6362;&#x81F3;&#x5341;&#x6708;&#x3002;  </p>
<p> <img src="assets/3.png" alt="img">  <img src="assets/4.png" alt="img">  &#x5C06;&#x5341;&#x6708;&#x6DFB;&#x52A0;&#x5230; <code>last_3_months</code> &#x5E76;&#x4E14;&#x5220;&#x6389;&#x4E03;&#x6708;&#x3002;  </p>
</blockquote>
<h3 id="&#x7D22;&#x5F15;&#x6A21;&#x677F;"><a name="&#x7D22;&#x5F15;&#x6A21;&#x677F;" class="anchor-navigation-ex-anchor" href="#&#x7D22;&#x5F15;&#x6A21;&#x677F;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x7D22;&#x5F15;&#x6A21;&#x677F;</h3>
<p>Elasticsearch &#x4E0D;&#x8981;&#x6C42;&#x4F60;&#x5728;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x524D;&#x521B;&#x5EFA;&#x5B83;&#x3002; &#x5BF9;&#x4E8E;&#x65E5;&#x5FD7;&#x8BB0;&#x5F55;&#x7C7B;&#x5E94;&#x7528;&#xFF0C;&#x4F9D;&#x8D56;&#x4E8E;&#x81EA;&#x52A8;&#x521B;&#x5EFA;&#x7D22;&#x5F15;&#x6BD4;&#x624B;&#x52A8;&#x521B;&#x5EFA;&#x8981;&#x66F4;&#x52A0;&#x65B9;&#x4FBF;&#x3002;</p>
<p>Logstash &#x4F7F;&#x7528;&#x4E8B;&#x4EF6;&#x4E2D;&#x7684;&#x65F6;&#x95F4;&#x6233;&#x6765;&#x751F;&#x6210;&#x7D22;&#x5F15;&#x540D;&#x3002; &#x9ED8;&#x8BA4;&#x6BCF;&#x5929;&#x88AB;&#x7D22;&#x5F15;&#x81F3;&#x4E0D;&#x540C;&#x7684;&#x7D22;&#x5F15;&#x4E2D;&#xFF0C;&#x56E0;&#x6B64;&#x4E00;&#x4E2A; <code>@timestamp</code> &#x4E3A; <code>2014-10-01 00:00:01</code> &#x7684;&#x4E8B;&#x4EF6;&#x5C06;&#x88AB;&#x53D1;&#x9001;&#x81F3;&#x7D22;&#x5F15; <code>logstash-2014.10.01</code> &#x4E2D;&#x3002; &#x5982;&#x679C;&#x90A3;&#x4E2A;&#x7D22;&#x5F15;&#x4E0D;&#x5B58;&#x5728;&#xFF0C;&#x5B83;&#x5C06;&#x88AB;&#x81EA;&#x52A8;&#x521B;&#x5EFA;&#x3002;</p>
<p>&#x901A;&#x5E38;&#x6211;&#x4EEC;&#x60F3;&#x8981;&#x63A7;&#x5236;&#x4E00;&#x4E9B;&#x65B0;&#x5EFA;&#x7D22;&#x5F15;&#x7684;&#x8BBE;&#x7F6E;&#xFF08;settings&#xFF09;&#x548C;&#x6620;&#x5C04;&#xFF08;mappings&#xFF09;&#x3002;&#x4E5F;&#x8BB8;&#x6211;&#x4EEC;&#x60F3;&#x8981;&#x9650;&#x5236;&#x5206;&#x7247;&#x6570;&#x4E3A; <code>1</code>&#xFF0C;&#x5E76;&#x4E14;&#x7981;&#x7528; <code>_all</code> &#x57DF;&#x3002; &#x7D22;&#x5F15;&#x6A21;&#x677F;&#x53EF;&#x4EE5;&#x7528;&#x4E8E;&#x63A7;&#x5236;&#x4F55;&#x79CD;&#x8BBE;&#x7F6E;&#xFF08;settings&#xFF09;&#x5E94;&#x5F53;&#x88AB;&#x5E94;&#x7528;&#x4E8E;&#x65B0;&#x521B;&#x5EFA;&#x7684;&#x7D22;&#x5F15;&#xFF1A;</p>
<pre><code class="lang-json">PUT /_template/my_logs            &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;template&quot;</span>: <span class="hljs-string">&quot;logstash-*&quot;</span>,       &lt;2&gt;
  &quot;order&quot;:    1,                  &lt;3&gt;
  &quot;settings&quot;: {
    &quot;number_of_shards&quot;: 1         &lt;4&gt;
  },
  &quot;mappings&quot;: {
    &quot;_default_&quot;: {                &lt;5&gt;
      &quot;_all&quot;: {
        &quot;enabled&quot;: false
      }
    }
  },
  &quot;aliases&quot;: {
    &quot;last_3_months&quot;: {}           &lt;6&gt;
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x540D;&#x4E3A; <code>my_logs</code> &#x7684;&#x6A21;&#x677F;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  &#x5C06;&#x8FD9;&#x4E2A;&#x6A21;&#x677F;&#x5E94;&#x7528;&#x4E8E;&#x6240;&#x6709;&#x4EE5; <code>logstash-</code> &#x4E3A;&#x8D77;&#x59CB;&#x7684;&#x7D22;&#x5F15;&#x3002; </p>
<p> <img src="assets/3.png" alt="img">  &#x8FD9;&#x4E2A;&#x6A21;&#x677F;&#x5C06;&#x4F1A;&#x8986;&#x76D6;&#x9ED8;&#x8BA4;&#x7684; <code>logstash</code> &#x6A21;&#x677F;&#xFF0C;&#x56E0;&#x4E3A;&#x9ED8;&#x8BA4;&#x6A21;&#x677F;&#x7684; <code>order</code> &#x66F4;&#x4F4E;&#x3002; </p>
<p> <img src="assets/4.png" alt="img">   &#x9650;&#x5236;&#x4E3B;&#x5206;&#x7247;&#x6570;&#x91CF;&#x4E3A; <code>1</code> &#x3002;  </p>
<p> <img src="assets/5.png" alt="img">   &#x4E3A;&#x6240;&#x6709;&#x7C7B;&#x578B;&#x7981;&#x7528; <code>_all</code> &#x57DF;&#x3002;  </p>
<p> <img src="assets/6.png" alt="img">  &#x6DFB;&#x52A0;&#x8FD9;&#x4E2A;&#x7D22;&#x5F15;&#x81F3; <code>last_3_months</code> &#x522B;&#x540D;&#x4E2D;&#x3002;  </p>
</blockquote>
<p>&#x8FD9;&#x4E2A;&#x6A21;&#x677F;&#x6307;&#x5B9A;&#x4E86;&#x6240;&#x6709;&#x540D;&#x5B57;&#x4EE5; <code>logstash-</code> &#x4E3A;&#x8D77;&#x59CB;&#x7684;&#x7D22;&#x5F15;&#x7684;&#x9ED8;&#x8BA4;&#x8BBE;&#x7F6E;&#xFF0C;&#x4E0D;&#x8BBA;&#x5B83;&#x662F;&#x624B;&#x52A8;&#x8FD8;&#x662F;&#x81EA;&#x52A8;&#x521B;&#x5EFA;&#x7684;&#x3002; &#x5982;&#x679C;&#x6211;&#x4EEC;&#x8BA4;&#x4E3A;&#x660E;&#x5929;&#x7684;&#x7D22;&#x5F15;&#x9700;&#x8981;&#x6BD4;&#x4ECA;&#x5929;&#x66F4;&#x5927;&#x7684;&#x5BB9;&#x91CF;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x66F4;&#x65B0;&#x8FD9;&#x4E2A;&#x7D22;&#x5F15;&#x4EE5;&#x4F7F;&#x7528;&#x66F4;&#x591A;&#x7684;&#x5206;&#x7247;&#x3002;</p>
<p>&#x8FD9;&#x4E2A;&#x6A21;&#x677F;&#x8FD8;&#x5C06;&#x65B0;&#x5EFA;&#x7D22;&#x5F15;&#x6DFB;&#x52A0;&#x81F3;&#x4E86; <code>last_3_months</code> &#x522B;&#x540D;&#x4E2D;&#xFF0C;&#x7136;&#x800C;&#x4ECE;&#x90A3;&#x4E2A;&#x522B;&#x540D;&#x4E2D;&#x5220;&#x9664;&#x65E7;&#x7684;&#x7D22;&#x5F15;&#x5219;&#x9700;&#x8981;&#x624B;&#x52A8;&#x6267;&#x884C;&#x3002;</p>
<h3 id="&#x6570;&#x636E;&#x8FC7;&#x671F;"><a name="&#x6570;&#x636E;&#x8FC7;&#x671F;" class="anchor-navigation-ex-anchor" href="#&#x6570;&#x636E;&#x8FC7;&#x671F;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6570;&#x636E;&#x8FC7;&#x671F;</h3>
<p>&#x968F;&#x7740;&#x65F6;&#x95F4;&#x63A8;&#x79FB;&#xFF0C;&#x57FA;&#x4E8E;&#x65F6;&#x95F4;&#x6570;&#x636E;&#x7684;&#x76F8;&#x5173;&#x5EA6;&#x9010;&#x6E10;&#x964D;&#x4F4E;&#x3002; &#x6709;&#x53EF;&#x80FD;&#x6211;&#x4EEC;&#x4F1A;&#x60F3;&#x8981;&#x67E5;&#x770B;&#x4E0A;&#x5468;&#x3001;&#x4E0A;&#x4E2A;&#x6708;&#x751A;&#x81F3;&#x4E0A;&#x4E00;&#x5E74;&#x5EA6;&#x53D1;&#x751F;&#x4E86;&#x4EC0;&#x4E48;&#xFF0C;&#x4F46;&#x662F;&#x5927;&#x591A;&#x6570;&#x60C5;&#x51B5;&#xFF0C;&#x6211;&#x4EEC;&#x53EA;&#x5173;&#x5FC3;&#x5F53;&#x524D;&#x53D1;&#x751F;&#x7684;&#x3002;</p>
<p>&#x6309;&#x65F6;&#x95F4;&#x8303;&#x56F4;&#x7D22;&#x5F15;&#x5E26;&#x6765;&#x7684;&#x4E00;&#x4E2A;&#x597D;&#x5904;&#x662F;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x5730;&#x5220;&#x9664;&#x65E7;&#x6570;&#x636E;&#xFF1A;&#x53EA;&#x9700;&#x8981;&#x5220;&#x9664;&#x90A3;&#x4E9B;&#x53D8;&#x5F97;&#x4E0D;&#x91CD;&#x8981;&#x7684;&#x7D22;&#x5F15;&#x5C31;&#x53EF;&#x4EE5;&#x4E86;&#x3002;</p>
<pre><code class="lang-json">DELETE /logs_2013*
</code></pre>
<p>&#x5220;&#x9664;&#x6574;&#x4E2A;&#x7D22;&#x5F15;&#x6BD4;&#x5220;&#x9664;&#x5355;&#x4E2A;&#x6587;&#x6863;&#x8981;&#x66F4;&#x52A0;&#x9AD8;&#x6548;&#xFF1A;Elasticsearch &#x53EA;&#x9700;&#x8981;&#x5220;&#x9664;&#x6574;&#x4E2A;&#x6587;&#x4EF6;&#x5939;&#x3002;</p>
<p>&#x4F46;&#x662F;&#x5220;&#x9664;&#x7D22;&#x5F15;&#x662F; <em>&#x7EC8;&#x6781;&#x624B;&#x6BB5;</em> &#x3002;&#x5728;&#x6211;&#x4EEC;&#x51B3;&#x5B9A;&#x5B8C;&#x5168;&#x5220;&#x9664;&#x5B83;&#x4E4B;&#x524D;&#x8FD8;&#x6709;&#x4E00;&#x4E9B;&#x4E8B;&#x60C5;&#x53EF;&#x4EE5;&#x505A;&#x6765;&#x5E2E;&#x52A9;&#x6570;&#x636E;&#x66F4;&#x52A0;&#x4F18;&#x96C5;&#x5730;&#x8FC7;&#x671F;&#x3002;</p>
<p><strong>&#x8FC1;&#x79FB;&#x65E7;&#x7D22;&#x5F15;</strong></p>
<p>&#x968F;&#x7740;&#x6570;&#x636E;&#x88AB;&#x8BB0;&#x5F55;&#xFF0C;&#x5F88;&#x6709;&#x53EF;&#x80FD;&#x5B58;&#x5728;&#x4E00;&#x4E2A; <em>&#x70ED;&#x70B9;</em> &#x7D22;&#x5F15;&#x2014;&#x2014;&#x4ECA;&#x65E5;&#x7684;&#x7D22;&#x5F15;&#x3002; &#x6240;&#x6709;&#x65B0;&#x6587;&#x6863;&#x90FD;&#x4F1A;&#x88AB;&#x52A0;&#x5230;&#x90A3;&#x4E2A;&#x7D22;&#x5F15;&#xFF0C;&#x51E0;&#x4E4E;&#x6240;&#x6709;&#x67E5;&#x8BE2;&#x90FD;&#x4EE5;&#x5B83;&#x4E3A;&#x76EE;&#x6807;&#x3002;&#x90A3;&#x4E2A;&#x7D22;&#x5F15;&#x5E94;&#x5F53;&#x4F7F;&#x7528;&#x4F60;&#x6700;&#x597D;&#x7684;&#x786C;&#x4EF6;&#x3002;</p>
<p>Elasticsearch &#x662F;&#x5982;&#x4F55;&#x5F97;&#x77E5;&#x54EA;&#x53F0;&#x662F;&#x4F60;&#x6700;&#x597D;&#x7684;&#x670D;&#x52A1;&#x5668;&#x5462;&#xFF1F;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x7ED9;&#x6BCF;&#x53F0;&#x670D;&#x52A1;&#x5668;&#x6307;&#x5B9A;&#x4EFB;&#x610F;&#x7684;&#x6807;&#x7B7E;&#x6765;&#x544A;&#x8BC9;&#x5B83;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x50CF;&#x8FD9;&#x6837;&#x542F;&#x52A8;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#xFF1A;</p>
<pre><code>./bin/elasticsearch --node.box_type strong
</code></pre><p><code>box_type</code> &#x53C2;&#x6570;&#x662F;&#x5B8C;&#x5168;&#x968F;&#x610F;&#x7684;&#x2014;&#x2014;&#x4F60;&#x53EF;&#x4EE5;&#x5C06;&#x5B83;&#x968F;&#x610F;&#x547D;&#x540D;&#x53EA;&#x8981;&#x4F60;&#x559C;&#x6B22;&#x2014;&#x2014;&#x4F46;&#x4F60;&#x53EF;&#x4EE5;&#x7528;&#x8FD9;&#x4E9B;&#x4EFB;&#x610F;&#x7684;&#x503C;&#x6765;&#x544A;&#x8BC9; Elasticsearch &#x5C06;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x5206;&#x914D;&#x81F3;&#x4F55;&#x5904;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x6309;&#x4EE5;&#x4E0B;&#x914D;&#x7F6E;&#x521B;&#x5EFA;&#x4ECA;&#x65E5;&#x7684;&#x7D22;&#x5F15;&#x6765;&#x786E;&#x4FDD;&#x5B83;&#x88AB;&#x5206;&#x914D;&#x5230;&#x6211;&#x4EEC;&#x6700;&#x597D;&#x7684;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#xFF1A;</p>
<pre><code class="lang-json">PUT /logs_2014<span class="hljs-number">-10</span><span class="hljs-number">-01</span>
{
  <span class="hljs-string">&quot;settings&quot;</span>: {
    <span class="hljs-string">&quot;index.routing.allocation.include.box_type&quot;</span> : <span class="hljs-string">&quot;strong&quot;</span>
  }
}
</code></pre>
<p>&#x6628;&#x65E5;&#x7684;&#x7D22;&#x5F15;&#x4E0D;&#x518D;&#x9700;&#x8981;&#x6211;&#x4EEC;&#x6700;&#x597D;&#x7684;&#x670D;&#x52A1;&#x5668;&#x4E86;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x66F4;&#x65B0;&#x7D22;&#x5F15;&#x8BBE;&#x7F6E;&#x5C06;&#x5B83;&#x79FB;&#x52A8;&#x5230;&#x6807;&#x8BB0;&#x4E3A; <code>medium</code> &#x7684;&#x8282;&#x70B9;&#x4E0A;&#xFF1A;</p>
<pre><code class="lang-json">POST /logs_2014<span class="hljs-number">-09</span><span class="hljs-number">-30</span>/_settings
{
  <span class="hljs-string">&quot;index.routing.allocation.include.box_type&quot;</span> : <span class="hljs-string">&quot;medium&quot;</span>
}
</code></pre>
<p><strong>&#x7D22;&#x5F15;&#x4F18;&#x5316;&#xFF08;Optimize&#xFF09;</strong></p>
<p>&#x6628;&#x65E5;&#x7684;&#x7D22;&#x5F15;&#x4E0D;&#x5927;&#x53EF;&#x80FD;&#x4F1A;&#x6539;&#x53D8;&#x3002; &#x65E5;&#x5FD7;&#x4E8B;&#x4EF6;&#x662F;&#x9759;&#x6001;&#x7684;&#xFF1A;&#x5DF2;&#x7ECF;&#x53D1;&#x751F;&#x7684;&#x8FC7;&#x5F80;&#x4E0D;&#x4F1A;&#x518D;&#x6539;&#x53D8;&#x4E86;&#x3002;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x5C06;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x5408;&#x5E76;&#x81F3;&#x4E00;&#x4E2A;&#x6BB5;&#xFF08;Segment&#xFF09;&#xFF0C;&#x5B83;&#x4F1A;&#x5360;&#x7528;&#x66F4;&#x5C11;&#x7684;&#x8D44;&#x6E90;&#x66F4;&#x5FEB;&#x5730;&#x54CD;&#x5E94;&#x67E5;&#x8BE2;&#x3002; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/merge-process.html#optimize-api" target="_blank">optimize API</a>&#x6765;&#x505A;&#x5230;&#x3002;</p>
<p>&#x5BF9;&#x8FD8;&#x5206;&#x914D;&#x5728; <code>strong</code> &#x4E3B;&#x673A;&#x4E0A;&#x7684;&#x7D22;&#x5F15;&#x8FDB;&#x884C;&#x4F18;&#x5316;&#xFF08;Optimize&#xFF09;&#x64CD;&#x4F5C;&#x5C06;&#x4F1A;&#x662F;&#x4E00;&#x4E2A;&#x7CDF;&#x7CD5;&#x7684;&#x60F3;&#x6CD5;&#xFF0C; &#x56E0;&#x4E3A;&#x4F18;&#x5316;&#x64CD;&#x4F5C;&#x5C06;&#x6D88;&#x8017;&#x8282;&#x70B9;&#x4E0A;&#x5927;&#x91CF; I/O &#x5E76;&#x5BF9;&#x7D22;&#x5F15;&#x4ECA;&#x65E5;&#x65E5;&#x5FD7;&#x9020;&#x6210;&#x51B2;&#x51FB;&#x3002;&#x4F46;&#x662F; <code>medium</code> &#x7684;&#x8282;&#x70B9;&#x6CA1;&#x6709;&#x505A;&#x592A;&#x591A;&#x7C7B;&#x4F3C;&#x7684;&#x5DE5;&#x4F5C;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5B89;&#x5168;&#x5730;&#x5728;&#x4E0A;&#x9762;&#x8FDB;&#x884C;&#x4F18;&#x5316;&#x3002;</p>
<p>&#x6628;&#x65E5;&#x7684;&#x7D22;&#x5F15;&#x6709;&#x53EF;&#x80FD;&#x62E5;&#x6709;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002; &#x5982;&#x679C;&#x6211;&#x4EEC;&#x4E0B;&#x53D1;&#x4E00;&#x4E2A;&#x4F18;&#x5316;&#xFF08;Optimize&#xFF09;&#x8BF7;&#x6C42;&#xFF0C; &#x5B83;&#x4F1A;&#x4F18;&#x5316;&#x4E3B;&#x5206;&#x7247;&#x548C;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF0C;&#x8FD9;&#x6709;&#x4E9B;&#x6D6A;&#x8D39;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4E34;&#x65F6;&#x79FB;&#x9664;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF0C;&#x8FDB;&#x884C;&#x4F18;&#x5316;&#xFF0C;&#x7136;&#x540E;&#x518D;&#x6062;&#x590D;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF1A;</p>
<pre><code class="lang-json">POST /logs_2014<span class="hljs-number">-09</span><span class="hljs-number">-30</span>/_settings
{ <span class="hljs-string">&quot;number_of_replicas&quot;</span>: <span class="hljs-number">0</span> }

POST /logs_2014<span class="hljs-number">-09</span><span class="hljs-number">-30</span>/_optimize?max_num_segments=<span class="hljs-number">1</span>

POST /logs_2014<span class="hljs-number">-09</span><span class="hljs-number">-30</span>/_settings
{ <span class="hljs-string">&quot;number_of_replicas&quot;</span>: <span class="hljs-number">1</span> }
</code></pre>
<p>&#x5F53;&#x7136;&#xFF0C;&#x6CA1;&#x6709;&#x526F;&#x672C;&#x6211;&#x4EEC;&#x5C06;&#x9762;&#x4E34;&#x78C1;&#x76D8;&#x6545;&#x969C;&#x800C;&#x5BFC;&#x81F4;&#x4E22;&#x5931;&#x6570;&#x636E;&#x7684;&#x98CE;&#x9669;&#x3002;&#x4F60;&#x53EF;&#x80FD;&#x60F3;&#x8981;&#x5148;&#x901A;&#x8FC7;<a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-snapshots.html" target="_blank"><code>snapshot-restore</code> API</a>&#x5907;&#x4EFD;&#x6570;&#x636E;&#x3002;</p>
<p><strong>&#x5173;&#x95ED;&#x65E7;&#x7D22;&#x5F15;</strong></p>
<p>&#x5F53;&#x7D22;&#x5F15;&#x53D8;&#x5F97;&#x66F4;&#x201C;&#x8001;&#x201D;&#xFF0C;&#x5B83;&#x4EEC;&#x5230;&#x8FBE;&#x4E00;&#x4E2A;&#x51E0;&#x4E4E;&#x4E0D;&#x4F1A;&#x518D;&#x88AB;&#x8BBF;&#x95EE;&#x7684;&#x65F6;&#x95F4;&#x70B9;&#x3002; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x8FD9;&#x4E2A;&#x9636;&#x6BB5;&#x5220;&#x9664;&#x5B83;&#x4EEC;&#xFF0C;&#x4F46;&#x4E5F;&#x8BB8;&#x4F60;&#x60F3;&#x5C06;&#x5B83;&#x4EEC;&#x7559;&#x5728;&#x8FD9;&#x91CC;&#x4EE5;&#x9632;&#x4E07;&#x4E00;&#x6709;&#x4EBA;&#x5728;&#x534A;&#x5E74;&#x540E;&#x8FD8;&#x60F3;&#x8981;&#x8BBF;&#x95EE;&#x5B83;&#x4EEC;&#x3002;</p>
<p>&#x8FD9;&#x4E9B;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x88AB;&#x5173;&#x95ED;&#x3002;&#x5B83;&#x4EEC;&#x8FD8;&#x4F1A;&#x5B58;&#x5728;&#x4E8E;&#x96C6;&#x7FA4;&#x4E2D;&#xFF0C;&#x4F46;&#x5B83;&#x4EEC;&#x4E0D;&#x4F1A;&#x6D88;&#x8017;&#x78C1;&#x76D8;&#x7A7A;&#x95F4;&#x4EE5;&#x5916;&#x7684;&#x8D44;&#x6E90;&#x3002;&#x91CD;&#x65B0;&#x6253;&#x5F00;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x8981;&#x6BD4;&#x4ECE;&#x5907;&#x4EFD;&#x4E2D;&#x6062;&#x590D;&#x5FEB;&#x5F97;&#x591A;&#x3002;</p>
<p>&#x5728;&#x5173;&#x95ED;&#x4E4B;&#x524D;&#xFF0C;&#x503C;&#x5F97;&#x6211;&#x4EEC;&#x53BB;&#x5237;&#x5199;&#x7D22;&#x5F15;&#x6765;&#x786E;&#x4FDD;&#x6CA1;&#x6709;&#x4E8B;&#x52A1;&#x6B8B;&#x7559;&#x5728;&#x4E8B;&#x52A1;&#x65E5;&#x5FD7;&#x4E2D;&#x3002;&#x4E00;&#x4E2A;&#x7A7A;&#x767D;&#x7684;&#x4E8B;&#x52A1;&#x65E5;&#x5FD7;&#x4F1A;&#x4F7F;&#x5F97;&#x7D22;&#x5F15;&#x5728;&#x91CD;&#x65B0;&#x6253;&#x5F00;&#x65F6;&#x6062;&#x590D;&#x5F97;&#x66F4;&#x5FEB;&#xFF1A;</p>
<pre><code class="lang-json">POST /logs_2014-01-*/_flush   &lt;1&gt;
POST /logs_2014-01-*/_close   &lt;2&gt;
POST /logs_2014-01-*/_open    &lt;3&gt;
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x5237;&#x5199;&#xFF08;Flush&#xFF09;&#x6240;&#x6709;&#x4E00;&#x6708;&#x7684;&#x7D22;&#x5F15;&#x6765;&#x6E05;&#x7A7A;&#x4E8B;&#x52A1;&#x65E5;&#x5FD7;&#x3002;   </p>
<p> <img src="assets/2.png" alt="img">  &#x5173;&#x95ED;&#x6240;&#x6709;&#x4E00;&#x6708;&#x7684;&#x7D22;&#x5F15;.     </p>
<p> <img src="assets/3.png" alt="img">]  &#x5F53;&#x4F60;&#x9700;&#x8981;&#x518D;&#x6B21;&#x8BBF;&#x95EE;&#x5B83;&#x4EEC;&#x65F6;&#xFF0C;&#x4F7F;&#x7528; <code>open</code> API &#x6765;&#x91CD;&#x65B0;&#x6253;&#x5F00;&#x5B83;&#x4EEC;&#x3002;  </p>
</blockquote>
<p><strong>&#x5F52;&#x6863;&#x65E7;&#x7D22;&#x5F15;</strong></p>
<p>&#x6700;&#x540E;&#xFF0C;&#x975E;&#x5E38;&#x65E7;&#x7684;&#x7D22;&#x5F15; &#x53EF;&#x4EE5;&#x901A;&#x8FC7;<a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-snapshots.html" target="_blank"><code>snapshot-restore</code> API</a>&#x5F52;&#x6863;&#x81F3;&#x957F;&#x671F;&#x5B58;&#x50A8;&#x4F8B;&#x5982;&#x5171;&#x4EAB;&#x78C1;&#x76D8;&#x6216;&#x8005; Amazon S3&#xFF0C;&#x4EE5;&#x9632;&#x65E5;&#x540E;&#x4F60;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x8BBF;&#x95EE;&#x5B83;&#x4EEC;&#x3002; &#x5F53;&#x5B58;&#x5728;&#x5907;&#x4EFD;&#x65F6;&#x6211;&#x4EEC;&#x5C31;&#x53EF;&#x4EE5;&#x5C06;&#x7D22;&#x5F15;&#x4ECE;&#x96C6;&#x7FA4;&#x4E2D;&#x5220;&#x9664;&#x4E86;&#x3002;</p>
<h3 id="&#x57FA;&#x4E8E;&#x7528;&#x6237;&#x7684;&#x6570;&#x636E;"><a name="&#x57FA;&#x4E8E;&#x7528;&#x6237;&#x7684;&#x6570;&#x636E;" class="anchor-navigation-ex-anchor" href="#&#x57FA;&#x4E8E;&#x7528;&#x6237;&#x7684;&#x6570;&#x636E;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x57FA;&#x4E8E;&#x7528;&#x6237;&#x7684;&#x6570;&#x636E;</h3>
<p>&#x901A;&#x5E38;&#x6765;&#x8BF4;&#xFF0C;&#x7528;&#x6237;&#x4F7F;&#x7528; Elasticsearch &#x7684;&#x539F;&#x56E0;&#x662F;&#x4ED6;&#x4EEC;&#x9700;&#x8981;&#x6DFB;&#x52A0;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x6216;&#x8005;&#x9700;&#x8981;&#x5206;&#x6790;&#x4E00;&#x4E2A;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#x7684;&#x5E94;&#x7528;&#x3002; &#x4ED6;&#x4EEC;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x6765;&#x5B58;&#x50A8;&#x6240;&#x6709;&#x6587;&#x6863;&#x3002;&#x516C;&#x53F8;&#x91CC;&#x7684;&#x5176;&#x4ED6;&#x4EBA;&#x4E5F;&#x9010;&#x6E10;&#x53D1;&#x73B0;&#x4E86; Elasticsearch &#x5E26;&#x6765;&#x7684;&#x597D;&#x5904;&#xFF0C;&#x4E5F;&#x60F3;&#x628A;&#x4ED6;&#x4EEC;&#x7684;&#x6570;&#x636E;&#x6DFB;&#x52A0;&#x5230; Elasticsearch &#x4E2D;&#x53BB;&#x3002;</p>
<p>&#x5E78;&#x8FD0;&#x7684;&#x662F;&#xFF0C;Elasticsearch &#x652F;&#x6301;<a href="http://en.wikipedia.org/wiki/Multitenancy" target="_blank">&#x591A;&#x79DF;&#x6237;</a>&#x6240;&#x4EE5;&#x6BCF;&#x4E2A;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x5728;&#x76F8;&#x540C;&#x7684;&#x96C6;&#x7FA4;&#x4E2D;&#x62E5;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x7D22;&#x5F15;&#x3002; &#x6709;&#x4EBA;&#x5076;&#x5C14;&#x4F1A;&#x60F3;&#x8981;&#x641C;&#x7D22;&#x6240;&#x6709;&#x7528;&#x6237;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x641C;&#x7D22;&#x6240;&#x6709;&#x7D22;&#x5F15;&#x5B9E;&#x73B0;&#xFF0C;&#x4F46;&#x5927;&#x591A;&#x6570;&#x60C5;&#x51B5;&#x4E0B;&#x7528;&#x6237;&#x53EA;&#x5173;&#x5FC3;&#x5B83;&#x4EEC;&#x81EA;&#x5DF1;&#x7684;&#x6587;&#x6863;&#x3002;</p>
<p>&#x4E00;&#x4E9B;&#x7528;&#x6237;&#x6709;&#x7740;&#x6BD4;&#x5176;&#x4ED6;&#x4EBA;&#x66F4;&#x591A;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x4E00;&#x4E9B;&#x7528;&#x6237;&#x53EF;&#x80FD;&#x6709;&#x6BD4;&#x5176;&#x4ED6;&#x4EBA;&#x66F4;&#x591A;&#x7684;&#x641C;&#x7D22;&#x6B21;&#x6570;&#xFF0C; &#x6240;&#x4EE5;&#x8FD9;&#x79CD;&#x5BF9;&#x6307;&#x5B9A;&#x6BCF;&#x4E2A;&#x7D22;&#x5F15;&#x4E3B;&#x5206;&#x7247;&#x548C;&#x526F;&#x672C;&#x5206;&#x7247;&#x6570;&#x91CF;&#x80FD;&#x529B;&#x7684;&#x9700;&#x8981;&#x5E94;&#x8BE5;&#x5F88;&#x9002;&#x5408;&#x4F7F;&#x7528;&#x201C;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x201D;&#x7684;&#x6A21;&#x5F0F;&#x3002; &#x7C7B;&#x4F3C;&#x5730;&#xFF0C;&#x8F83;&#x4E3A;&#x7E41;&#x5FD9;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5206;&#x7247;&#x5206;&#x914D;&#x8FC7;&#x6EE4;&#x6307;&#x5B9A;&#x5230;&#x9AD8;&#x914D;&#x7684;&#x8282;&#x70B9;&#x3002;&#xFF08;&#x53C2;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/retiring-data.html#migrate-indices" target="_blank">&#x8FC1;&#x79FB;&#x65E7;&#x7D22;&#x5F15;</a>&#x3002;&#xFF09;</p>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x4E0D;&#x8981;&#x4E3A;&#x6BCF;&#x4E2A;&#x7D22;&#x5F15;&#x90FD;&#x4F7F;&#x7528;&#x9ED8;&#x8BA4;&#x7684;&#x4E3B;&#x5206;&#x7247;&#x6570;&#x3002;&#x60F3;&#x60F3;&#x770B;&#x5B83;&#x9700;&#x8981;&#x5B58;&#x50A8;&#x591A;&#x5C11;&#x6570;&#x636E;&#x3002;&#x6709;&#x53EF;&#x80FD;&#x4F60;&#x4EC5;&#x9700;&#x8981;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x2014;&#x2014;&#x518D;&#x591A;&#x7684;&#x90FD;&#x53EA;&#x662F;&#x6D6A;&#x8D39;&#x8D44;&#x6E90;&#x3002;  </p>
</blockquote>
<p>&#x5927;&#x591A;&#x6570; Elasticsearch &#x7684;&#x7528;&#x6237;&#x8BFB;&#x5230;&#x8FD9;&#x91CC;&#x5C31;&#x5DF2;&#x7ECF;&#x591F;&#x4E86;&#x3002;&#x7B80;&#x5355;&#x7684;&#x201C;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x201D;&#x5BF9;&#x5927;&#x591A;&#x6570;&#x573A;&#x666F;&#x90FD;&#x53EF;&#x4EE5;&#x6EE1;&#x8DB3;&#x4E86;&#x3002;</p>
<p>&#x5BF9;&#x4E8E;&#x4F8B;&#x5916;&#x7684;&#x573A;&#x666F;&#xFF0C;&#x4F60;&#x53EF;&#x80FD;&#x4F1A;&#x53D1;&#x73B0;&#x9700;&#x8981;&#x652F;&#x6301;&#x5F88;&#x5927;&#x6570;&#x91CF;&#x7684;&#x7528;&#x6237;&#xFF0C;&#x90FD;&#x662F;&#x76F8;&#x4F3C;&#x7684;&#x9700;&#x6C42;&#x3002;&#x4E00;&#x4E2A;&#x4F8B;&#x5B50;&#x53EF;&#x80FD;&#x662F;&#x4E3A;&#x4E00;&#x4E2A;&#x62E5;&#x6709;&#x51E0;&#x5343;&#x4E2A;&#x90AE;&#x7BB1;&#x8D26;&#x6237;&#x7684;&#x8BBA;&#x575B;&#x63D0;&#x4F9B;&#x641C;&#x7D22;&#x670D;&#x52A1;&#x3002; &#x4E00;&#x4E9B;&#x8BBA;&#x575B;&#x53EF;&#x80FD;&#x6709;&#x5DE8;&#x5927;&#x7684;&#x6D41;&#x91CF;&#xFF0C;&#x4F46;&#x5927;&#x591A;&#x6570;&#x90FD;&#x5F88;&#x5C0F;&#x3002;&#x5C06;&#x4E00;&#x4E2A;&#x6709;&#x7740;&#x5355;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x7D22;&#x5F15;&#x7528;&#x4E8E;&#x4E00;&#x4E2A;&#x5C0F;&#x89C4;&#x6A21;&#x8BBA;&#x575B;&#x5DF2;&#x7ECF;&#x662F;&#x8DB3;&#x591F;&#x7684;&#x4E86;&#x2014;&#x2014;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x53EF;&#x4EE5;&#x627F;&#x8F7D;&#x5F88;&#x591A;&#x4E2A;&#x8BBA;&#x575B;&#x7684;&#x6570;&#x636E;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7684;&#x662F;&#x4E00;&#x79CD;&#x53EF;&#x4EE5;&#x5728;&#x7528;&#x6237;&#x95F4;&#x5171;&#x4EAB;&#x8D44;&#x6E90;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x7ED9;&#x6BCF;&#x4E2A;&#x7528;&#x6237;&#x4ED6;&#x4EEC;&#x62E5;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x7D22;&#x5F15;&#x8FD9;&#x79CD;&#x5370;&#x8C61;&#xFF0C;&#x800C;&#x4E0D;&#x5728;&#x5C0F;&#x7528;&#x6237;&#x4E0A;&#x6D6A;&#x8D39;&#x8D44;&#x6E90;&#x3002;</p>
<h3 id="&#x5171;&#x4EAB;&#x7D22;&#x5F15;"><a name="&#x5171;&#x4EAB;&#x7D22;&#x5F15;" class="anchor-navigation-ex-anchor" href="#&#x5171;&#x4EAB;&#x7D22;&#x5F15;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5171;&#x4EAB;&#x7D22;&#x5F15;</h3>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4E3A;&#x8BB8;&#x591A;&#x7684;&#x5C0F;&#x8BBA;&#x575B;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x5171;&#x4EAB;&#x7684;&#x7D22;&#x5F15;&#xFF0C; &#x5C06;&#x8BBA;&#x575B;&#x6807;&#x8BC6;&#x7D22;&#x5F15;&#x8FDB;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&#x5E76;&#x4E14;&#x5C06;&#x5B83;&#x7528;&#x4F5C;&#x4E00;&#x4E2A;&#x8FC7;&#x6EE4;&#x5668;&#xFF1A;</p>
<pre><code class="lang-json">PUT /forums
{
  <span class="hljs-string">&quot;settings&quot;</span>: {
    <span class="hljs-string">&quot;number_of_shards&quot;</span>: <span class="hljs-number">10</span>                      &lt;<span class="hljs-number">1</span>&gt;
  },
  <span class="hljs-string">&quot;mappings&quot;</span>: {
    <span class="hljs-string">&quot;post&quot;</span>: {
      <span class="hljs-string">&quot;properties&quot;</span>: {
        <span class="hljs-string">&quot;forum_id&quot;</span>: {                           &lt;2&gt;
          &quot;type&quot;:  &quot;string&quot;,
          &quot;index&quot;: &quot;not_analyzed&quot;
        }
      }
    }
  }
}

PUT /forums/post/1
{
  &quot;forum_id&quot;: &quot;baking&quot;,                         &lt;3&gt;
  &quot;title&quot;:    &quot;Easy recipe for ginger nuts&quot;,
  ...
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x8DB3;&#x591F;&#x5927;&#x7684;&#x7D22;&#x5F15;&#x6765;&#x5B58;&#x50A8;&#x6570;&#x5343;&#x4E2A;&#x5C0F;&#x8BBA;&#x575B;&#x7684;&#x6570;&#x636E;&#x3002;   </p>
<p> <img src="assets/2.png" alt="img"> <img src="assets/3.png" alt="img">   &#x6BCF;&#x4E2A;&#x5E16;&#x5B50;&#x90FD;&#x5FC5;&#x987B;&#x5305;&#x542B;&#x4E00;&#x4E2A; <code>forum_id</code> &#x6765;&#x6807;&#x8BC6;&#x5B83;&#x5C5E;&#x4E8E;&#x54EA;&#x4E2A;&#x8BBA;&#x575B;&#x3002;   </p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x628A; <code>forum_id</code> &#x7528;&#x4F5C;&#x4E00;&#x4E2A;&#x8FC7;&#x6EE4;&#x5668;&#x6765;&#x9488;&#x5BF9;&#x5355;&#x4E2A;&#x8BBA;&#x575B;&#x8FDB;&#x884C;&#x641C;&#x7D22;&#x3002;&#x8FD9;&#x4E2A;&#x8FC7;&#x6EE4;&#x5668;&#x53EF;&#x4EE5;&#x6392;&#x9664;&#x7D22;&#x5F15;&#x4E2D;&#x7EDD;&#x5927;&#x90E8;&#x5206;&#x7684;&#x6570;&#x636E;&#xFF08;&#x5C5E;&#x4E8E;&#x5176;&#x5B83;&#x8BBA;&#x575B;&#x7684;&#x6570;&#x636E;&#xFF09;&#xFF0C;&#x7F13;&#x5B58;&#x4F1A;&#x4FDD;&#x8BC1;&#x5FEB;&#x901F;&#x7684;&#x54CD;&#x5E94;&#xFF1A;</p>
<pre><code class="lang-json">GET /forums/post/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;bool&quot;</span>: {
      <span class="hljs-string">&quot;must&quot;</span>: {
        <span class="hljs-string">&quot;match&quot;</span>: {
          <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;ginger nuts&quot;</span>
        }
      },
      <span class="hljs-string">&quot;filter&quot;</span>: {
        <span class="hljs-string">&quot;term&quot;</span>: {
          <span class="hljs-string">&quot;forum_id&quot;</span>: {
            <span class="hljs-string">&quot;baking&quot;</span>
          }
        }
      }
    }
  }
}
</code></pre>
<p>&#x8FD9;&#x4E2A;&#x529E;&#x6CD5;&#x884C;&#x5F97;&#x901A;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x505A;&#x5F97;&#x66F4;&#x597D;&#x3002; &#x6765;&#x81EA;&#x4E8E;&#x540C;&#x4E00;&#x4E2A;&#x8BBA;&#x575B;&#x7684;&#x5E16;&#x5B50;&#x53EF;&#x4EE5;&#x7B80;&#x5355;&#x5730;&#x5BB9;&#x7EB3;&#x4E8E;&#x5355;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x4F46;&#x5B83;&#x4EEC;&#x73B0;&#x5728;&#x88AB;&#x6253;&#x6563;&#x5230;&#x4E86;&#x8FD9;&#x4E2A;&#x7D22;&#x5F15;&#x7684;&#x6240;&#x6709;&#x5341;&#x4E2A;&#x5206;&#x7247;&#x4E2D;&#x3002; &#x8FD9;&#x610F;&#x5473;&#x7740;&#x6BCF;&#x4E2A;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x90FD;&#x5FC5;&#x987B;&#x88AB;&#x8F6C;&#x53D1;&#x81F3;&#x6240;&#x6709;&#x5341;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x4E00;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x6216;&#x8005;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002; &#x5982;&#x679C;&#x80FD;&#x591F;&#x4FDD;&#x8BC1;&#x6240;&#x6709;&#x6765;&#x81EA;&#x4E8E;&#x540C;&#x4E00;&#x4E2A;&#x8BBA;&#x575B;&#x7684;&#x6240;&#x6709;&#x5E16;&#x5B50;&#x90FD;&#x88AB;&#x5B58;&#x50A8;&#x4E8E;&#x540C;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x53EF;&#x80FD;&#x4F1A;&#x662F;&#x4E2A;&#x597D;&#x60F3;&#x6CD5;&#x3002;</p>
<p>&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/routing-value.html" target="_blank">&#x8DEF;&#x7531;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x5230;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x4E2D;</a>&#xFF0C;&#x6211;&#x4EEC;&#x8BF4;&#x8FC7;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x5C06;&#x901A;&#x8FC7;&#x4F7F;&#x7528;&#x5982;&#x4E0B;&#x516C;&#x5F0F;&#x6765;&#x5206;&#x914D;&#x5230;&#x4E00;&#x4E2A;&#x6307;&#x5B9A;&#x5206;&#x7247;&#xFF1A;</p>
<pre><code>shard = hash(routing) % number_of_primary_shards
</code></pre><p><code>routing</code> &#x7684;&#x503C;&#x9ED8;&#x8BA4;&#x4E3A;&#x6587;&#x6863;&#x7684; <code>_id</code> &#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x8986;&#x76D6;&#x5B83;&#x5E76;&#x4E14;&#x63D0;&#x4F9B;&#x6211;&#x4EEC;&#x81EA;&#x5DF1;&#x81EA;&#x5B9A;&#x4E49;&#x7684;&#x8DEF;&#x7531;&#x503C;&#xFF0C;&#x4F8B;&#x5982; <code>forum_id</code>&#x3002; &#x6240;&#x6709;&#x6709;&#x7740;&#x76F8;&#x540C; <code>routing</code> &#x503C;&#x7684;&#x6587;&#x6863;&#x90FD;&#x5C06;&#x88AB;&#x5B58;&#x50A8;&#x4E8E;&#x76F8;&#x540C;&#x7684;&#x5206;&#x7247;&#xFF1A;</p>
<pre><code class="lang-json">PUT /forums/post/<span class="hljs-number">1</span>?routing=baking                  &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;forum_id&quot;</span>: <span class="hljs-string">&quot;baking&quot;</span>,                            <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">2</span>&gt;</span>
  &quot;title&quot;:    &quot;Easy recipe for ginger nuts&quot;,
  ...
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <img src="assets/2.png" alt="img">   &#x5C06; <code>forum_id</code> &#x7528;&#x4E8E;&#x8DEF;&#x7531;&#x503C;&#x4FDD;&#x8BC1;&#x6240;&#x6709;&#x6765;&#x81EA;&#x76F8;&#x540C;&#x8BBA;&#x575B;&#x7684;&#x5E16;&#x5B50;&#x90FD;&#x5B58;&#x50A8;&#x4E8E;&#x76F8;&#x540C;&#x7684;&#x5206;&#x7247;&#x3002;   </p>
</blockquote>
<p>&#x5F53;&#x6211;&#x4EEC;&#x641C;&#x7D22;&#x4E00;&#x4E2A;&#x6307;&#x5B9A;&#x8BBA;&#x575B;&#x7684;&#x5E16;&#x5B50;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F20;&#x9012;&#x76F8;&#x540C;&#x7684; <code>routing</code> &#x503C;&#x6765;&#x4FDD;&#x8BC1;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#x4EC5;&#x5728;&#x5B58;&#x6709;&#x6211;&#x4EEC;&#x6587;&#x6863;&#x7684;&#x5206;&#x7247;&#x4E0A;&#x6267;&#x884C;&#xFF1A;</p>
<pre><code class="lang-json">GET /forums/post/_search?routing=baking          &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;bool&quot;</span>: {
      <span class="hljs-string">&quot;must&quot;</span>: {
        <span class="hljs-string">&quot;match&quot;</span>: {
          <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;ginger nuts&quot;</span>
        }
      },
      <span class="hljs-string">&quot;filter&quot;</span>: {
        <span class="hljs-string">&quot;term&quot;</span>: {                                 <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">2</span>&gt;</span>
          &quot;forum_id&quot;: {
            &quot;baking&quot;
          }
        }
      }
    }
  }
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x67E5;&#x8BE2;&#x8BF7;&#x6C42;&#x4EC5;&#x5728;&#x5BF9;&#x5E94;&#x4E8E; <code>routing</code> &#x503C;&#x7684;&#x5206;&#x7247;&#x4E0A;&#x6267;&#x884C;&#x3002;   </p>
<p> <img src="assets/2.png" alt="img">  &#x6211;&#x4EEC;&#x8FD8;&#x662F;&#x9700;&#x8981;&#x8FC7;&#x6EE4;&#xFF08;Filter&#xFF09;&#x67E5;&#x8BE2;&#xFF0C;&#x56E0;&#x4E3A;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x53EF;&#x4EE5;&#x5B58;&#x50A8;&#x6765;&#x81EA;&#x4E8E;&#x5F88;&#x591A;&#x8BBA;&#x575B;&#x7684;&#x5E16;&#x5B50;&#x3002;   </p>
</blockquote>
<p>&#x591A;&#x4E2A;&#x8BBA;&#x575B;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4F20;&#x9012;&#x4E00;&#x4E2A;&#x9017;&#x53F7;&#x5206;&#x9694;&#x7684;&#x5217;&#x8868;&#x6765;&#x6307;&#x5B9A; <code>routing</code> &#x503C;&#xFF0C;&#x7136;&#x540E;&#x5C06;&#x6BCF;&#x4E2A; <code>forum_id</code> &#x5305;&#x542B;&#x4E8E;&#x4E00;&#x4E2A; <code>terms</code>&#x67E5;&#x8BE2;&#xFF1A;</p>
<pre><code class="lang-json">GET /forums/post/_search?routing=baking,cooking,recipes
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;bool&quot;</span>: {
      <span class="hljs-string">&quot;must&quot;</span>: {
        <span class="hljs-string">&quot;match&quot;</span>: {
          <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;ginger nuts&quot;</span>
        }
      },
      <span class="hljs-string">&quot;filter&quot;</span>: {
        <span class="hljs-string">&quot;terms&quot;</span>: {
          <span class="hljs-string">&quot;forum_id&quot;</span>: {
            [ <span class="hljs-string">&quot;baking&quot;</span>, <span class="hljs-string">&quot;cooking&quot;</span>, <span class="hljs-string">&quot;recipes&quot;</span> ]
          }
        }
      }
    }
  }
}
</code></pre>
<p>&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#x4ECE;&#x6280;&#x672F;&#x4E0A;&#x6765;&#x8BF4;&#x6BD4;&#x8F83;&#x9AD8;&#x6548;&#xFF0C;&#x7531;&#x4E8E;&#x8981;&#x4E3A;&#x6BCF;&#x4E00;&#x4E2A;&#x67E5;&#x8BE2;&#x6216;&#x8005;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#x6307;&#x5B9A; <code>routing</code> &#x548C; <code>terms</code> &#x7684;&#x503C;&#x770B;&#x8D77;&#x6765;&#x6709;&#x4E00;&#x70B9;&#x7684;&#x7B28;&#x62D9;&#x3002; &#x7D22;&#x5F15;&#x522B;&#x540D;&#x53EF;&#x4EE5;&#x5E2E;&#x4F60;&#x89E3;&#x51B3;&#x8FD9;&#x4E9B;&#xFF01;</p>
<h3 id="&#x5229;&#x7528;&#x522B;&#x540D;&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;"><a name="&#x5229;&#x7528;&#x522B;&#x540D;&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;" class="anchor-navigation-ex-anchor" href="#&#x5229;&#x7528;&#x522B;&#x540D;&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5229;&#x7528;&#x522B;&#x540D;&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;</h3>
<p>&#x4E3A;&#x4E86;&#x4FDD;&#x6301;&#x8BBE;&#x8BA1;&#x7684;&#x7B80;&#x6D01;&#xFF0C;&#x6211;&#x4EEC;&#x60F3;&#x8BA9;&#x6211;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x8BA4;&#x4E3A;&#x6211;&#x4EEC;&#x4E3A;&#x6BCF;&#x4E2A;&#x7528;&#x6237;&#x90FD;&#x6709;&#x4E00;&#x4E2A;&#x4E13;&#x95E8;&#x7684;&#x7D22;&#x5F15;&#x2014;&#x2014;&#x6216;&#x8005;&#x6309;&#x7167;&#x6211;&#x4EEC;&#x7684;&#x4F8B;&#x5B50;&#x6BCF;&#x4E2A;&#x8BBA;&#x575B;&#x4E00;&#x4E2A;&#x2014;&#x2014;&#x5C3D;&#x7BA1;&#x5B9E;&#x9645;&#x4E0A;&#x6211;&#x4EEC;&#x7528;&#x7684;&#x662F;&#x4E00;&#x4E2A;&#x5927;&#x7684;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/shared-index.html" target="_blank">shared index</a>&#x3002; &#x56E0;&#x6B64;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x4E00;&#x79CD;&#x65B9;&#x5F0F;&#x5C06; <code>routing</code> &#x503C;&#x53CA;&#x8FC7;&#x6EE4;&#x5668;&#x9690;&#x542B;&#x4E8E; <code>forum_id</code> &#x4E2D;&#x3002;</p>
<p>&#x7D22;&#x5F15;&#x522B;&#x540D;&#x53EF;&#x4EE5;&#x5E2E;&#x4F60;&#x505A;&#x5230;&#x8FD9;&#x4E9B;&#x3002;&#x5F53;&#x4F60;&#x5C06;&#x4E00;&#x4E2A;&#x522B;&#x540D;&#x4E0E;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x5173;&#x8054;&#x8D77;&#x6765;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x4E00;&#x4E2A;&#x8FC7;&#x6EE4;&#x5668;&#x548C;&#x4E00;&#x4E2A;&#x8DEF;&#x7531;&#x503C;&#xFF1A;</p>
<pre><code class="lang-json">PUT /forums/_alias/baking
{
  <span class="hljs-string">&quot;routing&quot;</span>: <span class="hljs-string">&quot;baking&quot;</span>,
  <span class="hljs-string">&quot;filter&quot;</span>: {
    <span class="hljs-string">&quot;term&quot;</span>: {
      <span class="hljs-string">&quot;forum_id&quot;</span>: <span class="hljs-string">&quot;baking&quot;</span>
    }
  }
}
</code></pre>
<p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5C06; <code>baking</code> &#x522B;&#x540D;&#x89C6;&#x4E3A;&#x4E00;&#x4E2A;&#x5355;&#x72EC;&#x7684;&#x7D22;&#x5F15;&#x3002;&#x7D22;&#x5F15;&#x81F3; <code>baking</code> &#x522B;&#x540D;&#x7684;&#x6587;&#x6863;&#x4F1A;&#x81EA;&#x52A8;&#x5730;&#x5E94;&#x7528;&#x6211;&#x4EEC;&#x81EA;&#x5B9A;&#x4E49;&#x7684;&#x8DEF;&#x7531;&#x503C;&#xFF1A;</p>
<pre><code class="lang-json">PUT /baking/post/<span class="hljs-number">1</span>                             &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;forum_id&quot;</span>: <span class="hljs-string">&quot;baking&quot;</span>,                        <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">2</span>&gt;</span>
  &quot;title&quot;:    &quot;Easy recipe for ginger nuts&quot;,
  ...
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> <img src="assets/2.png" alt="img">   &#x6211;&#x4EEC;&#x8FD8;&#x662F;&#x9700;&#x8981;&#x4E3A;&#x8FC7;&#x6EE4;&#x5668;&#x6307;&#x5B9A; <code>forumn_id</code> &#x5B57;&#x6BB5;&#xFF0C;&#x4F46;&#x81EA;&#x5B9A;&#x4E49;&#x8DEF;&#x7531;&#x503C;&#x5DF2;&#x7ECF;&#x662F;&#x9690;&#x542B;&#x7684;&#x4E86;&#x3002;   </p>
</blockquote>
<p>&#x5BF9; <code>baking</code> &#x522B;&#x540D;&#x4E0A;&#x7684;&#x67E5;&#x8BE2;&#x53EA;&#x4F1A;&#x5728;&#x81EA;&#x5B9A;&#x4E49;&#x8DEF;&#x7531;&#x503C;&#x5173;&#x8054;&#x7684;&#x5206;&#x7247;&#x4E0A;&#x8FD0;&#x884C;&#xFF0C;&#x5E76;&#x4E14;&#x7ED3;&#x679C;&#x4E5F;&#x81EA;&#x52A8;&#x6309;&#x7167;&#x6211;&#x4EEC;&#x6307;&#x5B9A;&#x7684;&#x8FC7;&#x6EE4;&#x5668;&#x8FDB;&#x884C;&#x4E86;&#x8FC7;&#x6EE4;&#xFF1A;</p>
<pre><code class="lang-json">GET /baking/post/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;match&quot;</span>: {
      <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;ginger nuts&quot;</span>
    }
  }
}
</code></pre>
<p>&#x5F53;&#x5BF9;&#x591A;&#x4E2A;&#x8BBA;&#x575B;&#x8FDB;&#x884C;&#x641C;&#x7D22;&#x65F6;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x591A;&#x4E2A;&#x522B;&#x540D;&#xFF1A;</p>
<pre><code class="lang-json">GET /baking,recipes/post/_search          &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;match&quot;</span>: {
      <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;ginger nuts&quot;</span>
    }
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x4E24;&#x4E2A; <code>routing</code> &#x7684;&#x503C;&#x90FD;&#x4F1A;&#x5E94;&#x7528;&#xFF0C;&#x8FD4;&#x56DE;&#x5BF9;&#x7ED3;&#x679C;&#x4F1A;&#x5339;&#x914D;&#x4EFB;&#x610F;&#x4E00;&#x4E2A;&#x8FC7;&#x6EE4;&#x5668;&#x3002;  </p>
</blockquote>
<h3 id="&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x7528;&#x6237;"><a name="&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x7528;&#x6237;" class="anchor-navigation-ex-anchor" href="#&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x7528;&#x6237;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x7528;&#x6237;</h3>
<p>&#x5927;&#x89C4;&#x6A21;&#x6D41;&#x884C;&#x8BBA;&#x575B;&#x90FD;&#x662F;&#x4ECE;&#x5C0F;&#x8BBA;&#x575B;&#x8D77;&#x6B65;&#x7684;&#x3002; &#x6709;&#x4E00;&#x5929;&#x6211;&#x4EEC;&#x4F1A;&#x53D1;&#x73B0;&#x6211;&#x4EEC;&#x5171;&#x4EAB;&#x7D22;&#x5F15;&#x4E2D;&#x7684;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x8981;&#x6BD4;&#x5176;&#x5B83;&#x5206;&#x7247;&#x66F4;&#x52A0;&#x7E41;&#x5FD9;&#xFF0C;&#x56E0;&#x4E3A;&#x8FD9;&#x4E2A;&#x5206;&#x7247;&#x4E2D;&#x4E00;&#x4E2A;&#x8BBA;&#x575B;&#x7684;&#x6587;&#x6863;&#x53D8;&#x5F97;&#x66F4;&#x52A0;&#x70ED;&#x95E8;&#x3002; &#x8FD9;&#x65F6;&#xFF0C;&#x90A3;&#x4E2A;&#x8BBA;&#x575B;&#x9700;&#x8981;&#x5C5E;&#x4E8E;&#x5B83;&#x81EA;&#x5DF1;&#x7684;&#x7D22;&#x5F15;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x7528;&#x6765;&#x63D0;&#x4F9B;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x7684;&#x7D22;&#x5F15;&#x522B;&#x540D;&#x7ED9;&#x4E86;&#x6211;&#x4EEC;&#x4E00;&#x4E2A;&#x7B80;&#x6D01;&#x7684;&#x8FC1;&#x79FB;&#x8BBA;&#x575B;&#x65B9;&#x5F0F;&#x3002;</p>
<p>&#x7B2C;&#x4E00;&#x6B65;&#x5C31;&#x662F;&#x4E3A;&#x90A3;&#x4E2A;&#x8BBA;&#x575B;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x7D22;&#x5F15;&#xFF0C;&#x5E76;&#x4E3A;&#x5176;&#x5206;&#x914D;&#x5408;&#x7406;&#x7684;&#x5206;&#x7247;&#x6570;&#xFF0C;&#x53EF;&#x4EE5;&#x6EE1;&#x8DB3;&#x4E00;&#x5B9A;&#x9884;&#x671F;&#x7684;&#x6570;&#x636E;&#x589E;&#x957F;&#xFF1A;</p>
<pre><code class="lang-json">PUT /baking_v1
{
  <span class="hljs-string">&quot;settings&quot;</span>: {
    <span class="hljs-string">&quot;number_of_shards&quot;</span>: <span class="hljs-number">3</span>
  }
}
</code></pre>
<p>&#x7B2C;&#x4E8C;&#x6B65;&#x5C31;&#x662F;&#x5C06;&#x5171;&#x4EAB;&#x7684;&#x7D22;&#x5F15;&#x4E2D;&#x7684;&#x6570;&#x636E;&#x8FC1;&#x79FB;&#x5230;&#x4E13;&#x7528;&#x7684;&#x7D22;&#x5F15;&#x4E2D;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/scroll.html" target="_blank"><code>scroll</code></a>&#x67E5;&#x8BE2;&#x548C;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html" target="_blank"><code>bulk</code> API</a>&#x6765;&#x5B9E;&#x73B0;&#x3002; &#x5F53;&#x8FC1;&#x79FB;&#x5B8C;&#x6210;&#x65F6;&#xFF0C;&#x53EF;&#x4EE5;&#x66F4;&#x65B0;&#x7D22;&#x5F15;&#x522B;&#x540D;&#x6307;&#x5411;&#x90A3;&#x4E2A;&#x65B0;&#x7684;&#x7D22;&#x5F15;&#xFF1A;</p>
<pre><code class="lang-json">POST /_aliases
{
  <span class="hljs-string">&quot;actions&quot;</span>: [
    { <span class="hljs-string">&quot;remove&quot;</span>: { <span class="hljs-string">&quot;alias&quot;</span>: <span class="hljs-string">&quot;baking&quot;</span>, <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;forums&quot;</span>    }},
    { <span class="hljs-string">&quot;add&quot;</span>:    { <span class="hljs-string">&quot;alias&quot;</span>: <span class="hljs-string">&quot;baking&quot;</span>, <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;baking_v1&quot;</span> }}
  ]
}
</code></pre>
<p>&#x66F4;&#x65B0;&#x7D22;&#x5F15;&#x522B;&#x540D;&#x7684;&#x64CD;&#x4F5C;&#x662F;&#x539F;&#x5B50;&#x6027;&#x7684;&#xFF1B;&#x5C31;&#x50CF;&#x5728;&#x62E8;&#x52A8;&#x4E00;&#x4E2A;&#x5F00;&#x5173;&#x3002;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x8FD8;&#x662F;&#x5728;&#x4E0E; <code>baking</code> API &#x4EA4;&#x4E92;&#x5E76;&#x4E14;&#x5BF9;&#x4E8E;&#x5B83;&#x5DF2;&#x7ECF;&#x6307;&#x5411;&#x4E00;&#x4E2A;&#x4E13;&#x7528;&#x7684;&#x7D22;&#x5F15;&#x6BEB;&#x65E0;&#x611F;&#x77E5;&#x3002;</p>
<p>&#x4E13;&#x7528;&#x7684;&#x7D22;&#x5F15;&#x4E0D;&#x518D;&#x9700;&#x8981;&#x8FC7;&#x6EE4;&#x5668;&#x6216;&#x8005;&#x81EA;&#x5B9A;&#x4E49;&#x7684;&#x8DEF;&#x7531;&#x503C;&#x4E86;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F9D;&#x8D56;&#x4E8E; Elasticsearch &#x9ED8;&#x8BA4;&#x4F7F;&#x7528;&#x7684; <code>_id</code> &#x5B57;&#x6BB5;&#x6765;&#x505A;&#x5206;&#x533A;&#x3002;</p>
<p>&#x6700;&#x540E;&#x4E00;&#x6B65;&#x662F;&#x4ECE;&#x5171;&#x4EAB;&#x7684;&#x7D22;&#x5F15;&#x4E2D;&#x5220;&#x9664;&#x65E7;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x641C;&#x7D22;&#x4E4B;&#x524D;&#x7684;&#x8DEF;&#x7531;&#x503C;&#x4EE5;&#x53CA;&#x8BBA;&#x575B; ID &#x7136;&#x540E;&#x8FDB;&#x884C;&#x6279;&#x91CF;&#x5220;&#x9664;&#x64CD;&#x4F5C;&#x6765;&#x5B9E;&#x73B0;&#x3002;</p>
<p>&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x6A21;&#x578B;&#x7684;&#x4F18;&#x96C5;&#x4E4B;&#x5904;&#x5728;&#x4E8E;&#x5B83;&#x5141;&#x8BB8;&#x4F60;&#x51CF;&#x5C11;&#x8D44;&#x6E90;&#x6D88;&#x8017;&#xFF0C;&#x4FDD;&#x6301;&#x5FEB;&#x901F;&#x7684;&#x54CD;&#x5E94;&#x65F6;&#x95F4;&#xFF0C;&#x540C;&#x65F6;&#x62E5;&#x6709;&#x5728;&#x9700;&#x8981;&#x65F6;&#x96F6;&#x5B95;&#x673A;&#x65F6;&#x95F4;&#x6269;&#x5BB9;&#x7684;&#x80FD;&#x529B;&#x3002;</p>
<h3 id="&#x6269;&#x5BB9;&#x5E76;&#x4E0D;&#x662F;&#x65E0;&#x9650;&#x7684;"><a name="&#x6269;&#x5BB9;&#x5E76;&#x4E0D;&#x662F;&#x65E0;&#x9650;&#x7684;" class="anchor-navigation-ex-anchor" href="#&#x6269;&#x5BB9;&#x5E76;&#x4E0D;&#x662F;&#x65E0;&#x9650;&#x7684;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6269;&#x5BB9;&#x5E76;&#x4E0D;&#x662F;&#x65E0;&#x9650;&#x7684;</h3>
<p>&#x8D2F;&#x5F7B;&#x6574;&#x4E2A;&#x7AE0;&#x8282;&#x6211;&#x4EEC;&#x8BA8;&#x8BBA;&#x4E86;&#x591A;&#x79CD; Elasticsearch &#x53EF;&#x4EE5;&#x505A;&#x5230;&#x7684;&#x6269;&#x5BB9;&#x65B9;&#x5F0F;&#x3002; &#x5927;&#x591A;&#x6570;&#x7684;&#x6269;&#x5BB9;&#x95EE;&#x9898;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x6DFB;&#x52A0;&#x8282;&#x70B9;&#x6765;&#x89E3;&#x51B3;&#x3002;&#x4F46;&#x6709;&#x4E00;&#x79CD;&#x8D44;&#x6E90;&#x662F;&#x6709;&#x9650;&#x5236;&#x7684;&#xFF0C;&#x56E0;&#x6B64;&#x503C;&#x5F97;&#x6211;&#x4EEC;&#x8BA4;&#x771F;&#x5BF9;&#x5F85;&#xFF1A;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x3002;</p>
<p><em>&#x96C6;&#x7FA4;&#x72B6;&#x6001;</em> &#x662F;&#x4E00;&#x79CD;&#x6570;&#x636E;&#x7ED3;&#x6784;&#xFF0C;&#x8D2E;&#x5B58;&#x4E0B;&#x5217;&#x96C6;&#x7FA4;&#x7EA7;&#x522B;&#x7684;&#x4FE1;&#x606F;&#xFF1A;</p>
<ul>
<li>&#x96C6;&#x7FA4;&#x7EA7;&#x522B;&#x7684;&#x8BBE;&#x7F6E;</li>
<li>&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x8282;&#x70B9;</li>
<li>&#x7D22;&#x5F15;&#x4EE5;&#x53CA;&#x5B83;&#x4EEC;&#x7684;&#x8BBE;&#x7F6E;&#x3001;&#x6620;&#x5C04;&#x3001;&#x5206;&#x6790;&#x5668;&#x3001;&#x9884;&#x70ED;&#x5668;&#xFF08;Warmers&#xFF09;&#x548C;&#x522B;&#x540D;</li>
<li>&#x4E0E;&#x6BCF;&#x4E2A;&#x7D22;&#x5F15;&#x5173;&#x8054;&#x7684;&#x5206;&#x7247;&#x4EE5;&#x53CA;&#x5B83;&#x4EEC;&#x5206;&#x914D;&#x5230;&#x7684;&#x8282;&#x70B9;</li>
</ul>
<p>&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5982;&#x4E0B;&#x8BF7;&#x6C42;&#x67E5;&#x770B;&#x5F53;&#x524D;&#x7684;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#xFF1A;</p>
<pre><code class="lang-json">GET /_cluster/state
</code></pre>
<p>&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x5B58;&#x5728;&#x4E8E;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#xFF0C; &#x5305;&#x62EC;&#x5BA2;&#x6237;&#x7AEF;&#x8282;&#x70B9;&#x3002; &#x8FD9;&#x5C31;&#x662F;&#x4E3A;&#x4EC0;&#x4E48;&#x4EFB;&#x4F55;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x90FD;&#x53EF;&#x4EE5;&#x5C06;&#x8BF7;&#x6C42;&#x76F4;&#x63A5;&#x8F6C;&#x53D1;&#x81F3;&#x88AB;&#x8BF7;&#x6C42;&#x6570;&#x636E;&#x7684;&#x8282;&#x70B9;&#x2014;&#x2014;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x90FD;&#x77E5;&#x9053;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x5E94;&#x8BE5;&#x5728;&#x54EA;&#x91CC;&#x3002;</p>
<p>&#x53EA;&#x6709;&#x4E3B;&#x8282;&#x70B9;&#x88AB;&#x5141;&#x8BB8;&#x66F4;&#x65B0;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x3002;&#x60F3;&#x8C61;&#x4E00;&#x4E0B;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#x5F15;&#x5165;&#x4E86;&#x4E00;&#x4E2A;&#x4E4B;&#x524D;&#x672A;&#x77E5;&#x7684;&#x5B57;&#x6BB5;&#x3002;&#x6301;&#x6709;&#x90A3;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x4E3B;&#x5206;&#x7247;&#x6240;&#x5728;&#x7684;&#x8282;&#x70B9;&#x5FC5;&#x987B;&#x5C06;&#x65B0;&#x7684;&#x6620;&#x5C04;&#x8F6C;&#x53D1;&#x5230;&#x4E3B;&#x8282;&#x70B9;&#x4E0A;&#x3002; &#x4E3B;&#x8282;&#x70B9;&#x628A;&#x66F4;&#x6539;&#x5408;&#x5E76;&#x5230;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x4E2D;&#xFF0C;&#x7136;&#x540E;&#x5411;&#x6240;&#x6709;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x8282;&#x70B9;&#x53D1;&#x5E03;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x7248;&#x672C;&#x3002;</p>
<p>&#x641C;&#x7D22;&#x8BF7;&#x6C42; <em>&#x4F7F;&#x7528;</em> &#x96C6;&#x7FA4;&#x72B6;&#x6001;&#xFF0C;&#x4F46;&#x5B83;&#x4EEC;&#x4E0D;&#x4F1A;&#x4EA7;&#x751F;&#x4FEE;&#x6539;&#x3002;&#x540C;&#x6837;&#xFF0C;&#x6587;&#x6863;&#x7EA7;&#x522B;&#x7684;&#x589E;&#x5220;&#x6539;&#x67E5;&#x8BF7;&#x6C42;&#x4E5F;&#x4E0D;&#x4F1A;&#x5BF9;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x4EA7;&#x751F;&#x4FEE;&#x6539;&#x3002;&#x5F53;&#x7136;&#xFF0C;&#x9664;&#x975E;&#x5B83;&#x4EEC;&#x5F15;&#x5165;&#x4E86;&#x4E00;&#x4E2A;&#x9700;&#x8981;&#x66F4;&#x65B0;&#x6620;&#x5C04;&#x7684;&#x65B0;&#x7684;&#x5B57;&#x6BB5;&#x4E86;&#x3002; &#x603B;&#x7684;&#x6765;&#x8BF4;&#xFF0C;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x662F;&#x9759;&#x6001;&#x7684;&#x4E0D;&#x4F1A;&#x6210;&#x4E3A;&#x74F6;&#x9888;&#x3002;</p>
<p>&#x7136;&#x800C;&#xFF0C;&#x9700;&#x8981;&#x8BB0;&#x4F4F;&#x7684;&#x662F;&#x76F8;&#x540C;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x9700;&#x8981;&#x5728;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x5185;&#x5B58;&#x4E2D;&#x4FDD;&#x5B58;&#xFF0C;&#x5E76;&#x4E14;&#x5F53;&#x5B83;&#x53D1;&#x751F;&#x66F4;&#x6539;&#x65F6;&#x5FC5;&#x987B;&#x53D1;&#x5E03;&#x5230;&#x6BCF;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x3002; &#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x7684;&#x6570;&#x636E;&#x91CF;&#x8D8A;&#x5927;&#xFF0C;&#x8FD9;&#x4E2A;&#x64CD;&#x4F5C;&#x5C31;&#x4F1A;&#x8D8A;&#x4E45;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x89C1;&#x8FC7;&#x6700;&#x5E38;&#x89C1;&#x7684;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x95EE;&#x9898;&#x5C31;&#x662F;&#x5F15;&#x5165;&#x4E86;&#x592A;&#x591A;&#x7684;&#x5B57;&#x6BB5;&#x3002;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x53EF;&#x80FD;&#x4F1A;&#x51B3;&#x5B9A;&#x4E3A;&#x6BCF;&#x4E00;&#x4E2A; IP &#x5730;&#x5740;&#x6216;&#x8005;&#x6BCF;&#x4E2A; referer URL &#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x5355;&#x72EC;&#x7684;&#x5B57;&#x6BB5;&#x3002; &#x4E0B;&#x9762;&#x8FD9;&#x4E2A;&#x4F8B;&#x5B50;&#x901A;&#x8FC7;&#x4E3A;&#x6BCF;&#x4E00;&#x4E2A;&#x552F;&#x4E00;&#x7684; referer &#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x4E0D;&#x540C;&#x7684;&#x5B57;&#x6BB5;&#x540D;&#x6765;&#x4FDD;&#x6301;&#x5BF9;&#x9875;&#x9762;&#x6D4F;&#x89C8;&#x91CF;&#x7684;&#x8BA1;&#x6570;&#xFF1A;</p>
<pre><code class="lang-json">POST /counters/pageview/home_page/_update
{
  <span class="hljs-string">&quot;script&quot;</span>: <span class="hljs-string">&quot;ctx._source[referer]++&quot;</span>,
  <span class="hljs-string">&quot;params&quot;</span>: {
    <span class="hljs-string">&quot;referer&quot;</span>: <span class="hljs-string">&quot;http://www.foo.com/links?bar=baz&quot;</span>
  }
}
</code></pre>
<p>&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#x5341;&#x5206;&#x7684;&#x7CDF;&#x7CD5;&#xFF01;&#x5B83;&#x4F1A;&#x751F;&#x6210;&#x6570;&#x767E;&#x4E07;&#x4E2A;&#x5B57;&#x6BB5;&#xFF0C;&#x8FD9;&#x4E9B;&#x90FD;&#x9700;&#x8981;&#x88AB;&#x5B58;&#x50A8;&#x5728;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x4E2D;&#x3002; &#x6BCF;&#x5F53;&#x89C1;&#x5230;&#x4E00;&#x4E2A;&#x65B0;&#x7684; referer &#xFF0C;&#x90FD;&#x6709;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x5B57;&#x6BB5;&#x9700;&#x8981;&#x52A0;&#x5165;&#x90A3;&#x4E2A;&#x5DF2;&#x7ECF;&#x81A8;&#x80C0;&#x7684;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x4E2D;&#xFF0C;&#x8FD9;&#x90FD;&#x9700;&#x8981;&#x88AB;&#x53D1;&#x5E03;&#x5230;&#x96C6;&#x7FA4;&#x7684;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x4E2D;&#x53BB;&#x3002;</p>
<p>&#x66F4;&#x597D;&#x7684;&#x65B9;&#x5F0F;&#x662F;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/nested-objects.html" target="_blank">nested objects</a>&#xFF0C; &#x5B83;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&#x4F5C;&#x4E3A;&#x53C2;&#x6570;&#x540D;&#x2014;<code>referer</code>&#x2014;&#x53E6;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&#x4F5C;&#x4E3A;&#x5173;&#x8054;&#x7684;&#x503C;&#x2014;<code>count</code> &#xFF1A;</p>
<pre><code class="lang-json">    <span class="hljs-string">&quot;counters&quot;</span>: [
      { <span class="hljs-string">&quot;referer&quot;</span>: <span class="hljs-string">&quot;http://www.foo.com/links?bar=baz&quot;</span>,  <span class="hljs-string">&quot;count&quot;</span>: <span class="hljs-number">2</span> },
      { <span class="hljs-string">&quot;referer&quot;</span>: <span class="hljs-string">&quot;http://www.linkbait.com/article_3&quot;</span>, <span class="hljs-string">&quot;count&quot;</span>: <span class="hljs-number">10</span> },
      ...
    ]
</code></pre>
<p>&#x8FD9;&#x79CD;&#x5D4C;&#x5957;&#x7684;&#x65B9;&#x5F0F;&#x6709;&#x53EF;&#x80FD;&#x4F1A;&#x589E;&#x52A0;&#x6587;&#x6863;&#x6570;&#x91CF;&#xFF0C;&#x4F46; Elasticsearch &#x751F;&#x6765;&#x5C31;&#x662F;&#x4E3A;&#x4E86;&#x89E3;&#x51B3;&#x5B83;&#x7684;&#x3002;&#x91CD;&#x8981;&#x7684;&#x662F;&#x4FDD;&#x6301;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x5C0F;&#x800C;&#x654F;&#x6377;&#x3002;</p>
<p>&#x6700;&#x7EC8;&#xFF0C;&#x4E0D;&#x7BA1;&#x4F60;&#x7684;&#x521D;&#x8877;&#x6709;&#x591A;&#x597D;&#xFF0C;&#x4F60;&#x53EF;&#x80FD;&#x4F1A;&#x53D1;&#x73B0;&#x96C6;&#x7FA4;&#x8282;&#x70B9;&#x6570;&#x91CF;&#x3001;&#x7D22;&#x5F15;&#x3001;&#x6620;&#x5C04;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A;&#x96C6;&#x7FA4;&#x6765;&#x8BF4;&#x8FD8;&#x662F;&#x592A;&#x5927;&#x4E86;&#x3002; &#x6B64;&#x65F6;&#xFF0C;&#x53EF;&#x80FD;&#x6709;&#x5FC5;&#x8981;&#x5C06;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x62C6;&#x5206;&#x5230;&#x591A;&#x4E2A;&#x96C6;&#x7FA4;&#x4E2D;&#x4E86;&#x3002;&#x611F;&#x8C22;<a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-tribe.html" target="_blank"><code>tribe</code> nodes</a>&#xFF0C; &#x4F60;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x5411;&#x591A;&#x4E2A;&#x96C6;&#x7FA4;&#x53D1;&#x51FA;&#x641C;&#x7D22;&#x8BF7;&#x6C42;&#xFF0C;&#x5C31;&#x597D;&#x50CF;&#x6211;&#x4EEC;&#x6709;&#x4E00;&#x4E2A;&#x5DE8;&#x5927;&#x7684;&#x96C6;&#x7FA4;&#x90A3;&#x6837;&#x3002; </p>
<footer class="page-footer"><span class="copyright">Copyright &#xA9; WS 2019 all right reserved&#xFF0C;powered by Gitbook</span><span class="footer-modification">&#x8BE5;&#x6587;&#x4EF6;&#x4FEE;&#x8BA2;&#x65F6;&#x95F4;&#xFF1A;
2019-03-13 15:57:11
</span></footer>
                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="6_Geolocation.html#在查询中使用已索引的形状" class="navigation navigation-prev " aria-label="Previous page: 在查询中使用已索引的形状">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="7_Modeling_your_data.html#关联关系处理" class="navigation navigation-next " aria-label="Next page: 关联关系处理">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"数据建模","level":"8.1","depth":1,"next":{"title":"关联关系处理","level":"8.1.1","depth":2,"anchor":"#关联关系处理","path":"7_Modeling_your_data.md","ref":"7_Modeling_your_data.md#关联关系处理","articles":[{"title":"应用层联接","level":"8.1.1.1","depth":3,"anchor":"#应用层联接","path":"7_Modeling_your_data.md","ref":"7_Modeling_your_data.md#应用层联接","articles":[]},{"title":"非规范化你的数据","level":"8.1.1.2","depth":3,"anchor":"#非规范化你的数据","path":"7_Modeling_your_data.md","ref":"7_Modeling_your_data.md#非规范化你的数据","articles":[]},{"title":"字段折叠","level":"8.1.1.3","depth":3,"anchor":"#字段折叠","path":"7_Modeling_your_data.md","ref":"7_Modeling_your_data.md#字段折叠","articles":[]},{"title":"非规范化和并发","level":"8.1.1.4","depth":3,"anchor":"#非规范化和并发","path":"7_Modeling_your_data.md","ref":"7_Modeling_your_data.md#非规范化和并发","articles":[]},{"title":"解决并发问题","level":"8.1.1.5","depth":3,"anchor":"#解决并发问题","path":"7_Modeling_your_data.md","ref":"7_Modeling_your_data.md#解决并发问题","articles":[]}]},"previous":{"title":"在查询中使用已索引的形状","level":"7.1.4.4","depth":3,"anchor":"#在查询中使用已索引的形状","path":"6_Geolocation.md","ref":"6_Geolocation.md#在查询中使用已索引的形状","articles":[]},"dir":"ltr"},"config":{"plugins":["github@^2.0.0","edit-link@^2.0.2","anchors@^0.7.1","include-codeblock@^3.0.2","splitter@^0.0.8","tbfed-pagefooter@^0.0.1","expandable-chapters-small@^0.1.7","anchor-navigation-ex@0.1.8","book-summary-scroll-position-saver","ace","emphasize","-lunr","-search","search-plus"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"tbfed-pagefooter":{"copyright":"Copyright © WS 2019","modify_label":"该文件修订时间：","modify_format":"YYYY-MM-DD HH:mm:ss"},"emphasize":{},"ace":{},"github":{"url":"https://github.com/wjw465150/Elasticsearch"},"book-summary-scroll-position-saver":{},"splitter":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"anchor-navigation-ex":{"isRewritePageTitle":false,"tocLevel1Icon":"fa fa-hand-o-right","tocLevel2Icon":"fa fa-hand-o-right","tocLevel3Icon":"fa fa-hand-o-right"},"expandable-chapters-small":{},"include-codeblock":{"check":false,"edit":true,"fixlang":false,"lang":"","template":"ace","theme":"chrome","unindent":true},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"edit-link":{"label":"编辑此页面","base":"https://github.com/wjw465150/Elasticsearch/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"search-plus":{}},"theme":"default","author":"WS","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"Elasticsearch权威指南中文版","language":"zh-hans","gitbook":"*","description":"Elasticsearch权威指南中文版"},"file":{"path":"7_Modeling_your_data.md","mtime":"2019-03-13T07:57:11.701Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-03-15T05:52:05.244Z"},"basePath":".","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="gitbook/gitbook.js"></script>
    <script src="gitbook/theme.js"></script>
    
        
        <script src="gitbook/gitbook-plugin-github/plugin.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-edit-link/plugin.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-splitter/splitter.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-expandable-chapters-small/expandable-chapters-small.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-book-summary-scroll-position-saver/book-summary-scroll-position-saver.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-ace/ace/ace.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-ace/ace.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-search-plus/jquery.mark.min.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-search-plus/search.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

